Skip to content

Commit fb872b2

Browse files
04112146
1 parent 950be3e commit fb872b2

File tree

2 files changed

+82
-86
lines changed

2 files changed

+82
-86
lines changed

exercises/algorithm/algorithm1.rs

Lines changed: 48 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
single linked list merge
3-
This problem requires you to merge two ordered singly linked lists into one ordered singly linked list
2+
single linked list merge
3+
This problem requires you to merge two ordered singly linked lists into one ordered singly linked list
44
*/
55
// I AM NOT DONE
66

@@ -16,10 +16,7 @@ struct Node<T> {
1616

1717
impl<T> Node<T> {
1818
fn new(t: T) -> Node<T> {
19-
Node {
20-
val: t,
21-
next: None,
22-
}
19+
Node { val: t, next: None }
2320
}
2421
}
2522
#[derive(Debug)]
@@ -69,15 +66,14 @@ impl<T> LinkedList<T> {
6966
},
7067
}
7168
}
72-
pub fn merge(list_a:LinkedList<T>,list_b:LinkedList<T>) -> Self
73-
{
74-
//TODO
75-
Self {
69+
pub fn merge(list_a: LinkedList<T>, list_b: LinkedList<T>) -> Self {
70+
//TODO
71+
Self {
7672
length: 0,
7773
start: None,
7874
end: None,
7975
}
80-
}
76+
}
8177
}
8278

8379
impl<T> Display for LinkedList<T>
@@ -130,44 +126,44 @@ mod tests {
130126

131127
#[test]
132128
fn test_merge_linked_list_1() {
133-
let mut list_a = LinkedList::<i32>::new();
134-
let mut list_b = LinkedList::<i32>::new();
135-
let vec_a = vec![1,3,5,7];
136-
let vec_b = vec![2,4,6,8];
137-
let target_vec = vec![1,2,3,4,5,6,7,8];
138-
139-
for i in 0..vec_a.len(){
140-
list_a.add(vec_a[i]);
141-
}
142-
for i in 0..vec_b.len(){
143-
list_b.add(vec_b[i]);
144-
}
145-
println!("list a {} list b {}", list_a,list_b);
146-
let mut list_c = LinkedList::<i32>::merge(list_a,list_b);
147-
println!("merged List is {}", list_c);
148-
for i in 0..target_vec.len(){
149-
assert_eq!(target_vec[i],*list_c.get(i as i32).unwrap());
150-
}
151-
}
152-
#[test]
153-
fn test_merge_linked_list_2() {
154-
let mut list_a = LinkedList::<i32>::new();
155-
let mut list_b = LinkedList::<i32>::new();
156-
let vec_a = vec![11,33,44,88,89,90,100];
157-
let vec_b = vec![1,22,30,45];
158-
let target_vec = vec![1,11,22,30,33,44,45,88,89,90,100];
159-
160-
for i in 0..vec_a.len(){
161-
list_a.add(vec_a[i]);
162-
}
163-
for i in 0..vec_b.len(){
164-
list_b.add(vec_b[i]);
165-
}
166-
println!("list a {} list b {}", list_a,list_b);
167-
let mut list_c = LinkedList::<i32>::merge(list_a,list_b);
168-
println!("merged List is {}", list_c);
169-
for i in 0..target_vec.len(){
170-
assert_eq!(target_vec[i],*list_c.get(i as i32).unwrap());
171-
}
172-
}
173-
}
129+
let mut list_a = LinkedList::<i32>::new();
130+
let mut list_b = LinkedList::<i32>::new();
131+
let vec_a = vec![1, 3, 5, 7];
132+
let vec_b = vec![2, 4, 6, 8];
133+
let target_vec = vec![1, 2, 3, 4, 5, 6, 7, 8];
134+
135+
for i in 0..vec_a.len() {
136+
list_a.add(vec_a[i]);
137+
}
138+
for i in 0..vec_b.len() {
139+
list_b.add(vec_b[i]);
140+
}
141+
println!("list a {} list b {}", list_a, list_b);
142+
let mut list_c = LinkedList::<i32>::merge(list_a, list_b);
143+
println!("merged List is {}", list_c);
144+
for i in 0..target_vec.len() {
145+
assert_eq!(target_vec[i], *list_c.get(i as i32).unwrap());
146+
}
147+
}
148+
#[test]
149+
fn test_merge_linked_list_2() {
150+
let mut list_a = LinkedList::<i32>::new();
151+
let mut list_b = LinkedList::<i32>::new();
152+
let vec_a = vec![11, 33, 44, 88, 89, 90, 100];
153+
let vec_b = vec![1, 22, 30, 45];
154+
let target_vec = vec![1, 11, 22, 30, 33, 44, 45, 88, 89, 90, 100];
155+
156+
for i in 0..vec_a.len() {
157+
list_a.add(vec_a[i]);
158+
}
159+
for i in 0..vec_b.len() {
160+
list_b.add(vec_b[i]);
161+
}
162+
println!("list a {} list b {}", list_a, list_b);
163+
let mut list_c = LinkedList::<i32>::merge(list_a, list_b);
164+
println!("merged List is {}", list_c);
165+
for i in 0..target_vec.len() {
166+
assert_eq!(target_vec[i], *list_c.get(i as i32).unwrap());
167+
}
168+
}
169+
}

exercises/algorithm/algorithm2.rs

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
double linked list reverse
3-
This problem requires you to reverse a doubly linked list
2+
double linked list reverse
3+
This problem requires you to reverse a doubly linked list
44
*/
55
// I AM NOT DONE
66

@@ -72,9 +72,9 @@ impl<T> LinkedList<T> {
7272
},
7373
}
7474
}
75-
pub fn reverse(&mut self){
76-
// TODO
77-
}
75+
pub fn reverse(&mut self) {
76+
// TODO
77+
}
7878
}
7979

8080
impl<T> Display for LinkedList<T>
@@ -127,33 +127,33 @@ mod tests {
127127

128128
#[test]
129129
fn test_reverse_linked_list_1() {
130-
let mut list = LinkedList::<i32>::new();
131-
let original_vec = vec![2,3,5,11,9,7];
132-
let reverse_vec = vec![7,9,11,5,3,2];
133-
for i in 0..original_vec.len(){
134-
list.add(original_vec[i]);
135-
}
136-
println!("Linked List is {}", list);
137-
list.reverse();
138-
println!("Reversed Linked List is {}", list);
139-
for i in 0..original_vec.len(){
140-
assert_eq!(reverse_vec[i],*list.get(i as i32).unwrap());
141-
}
142-
}
130+
let mut list = LinkedList::<i32>::new();
131+
let original_vec = vec![2, 3, 5, 11, 9, 7];
132+
let reverse_vec = vec![7, 9, 11, 5, 3, 2];
133+
for i in 0..original_vec.len() {
134+
list.add(original_vec[i]);
135+
}
136+
println!("Linked List is {}", list);
137+
list.reverse();
138+
println!("Reversed Linked List is {}", list);
139+
for i in 0..original_vec.len() {
140+
assert_eq!(reverse_vec[i], *list.get(i as i32).unwrap());
141+
}
142+
}
143143

144-
#[test]
145-
fn test_reverse_linked_list_2() {
146-
let mut list = LinkedList::<i32>::new();
147-
let original_vec = vec![34,56,78,25,90,10,19,34,21,45];
148-
let reverse_vec = vec![45,21,34,19,10,90,25,78,56,34];
149-
for i in 0..original_vec.len(){
150-
list.add(original_vec[i]);
151-
}
152-
println!("Linked List is {}", list);
153-
list.reverse();
154-
println!("Reversed Linked List is {}", list);
155-
for i in 0..original_vec.len(){
156-
assert_eq!(reverse_vec[i],*list.get(i as i32).unwrap());
157-
}
158-
}
159-
}
144+
#[test]
145+
fn test_reverse_linked_list_2() {
146+
let mut list = LinkedList::<i32>::new();
147+
let original_vec = vec![34, 56, 78, 25, 90, 10, 19, 34, 21, 45];
148+
let reverse_vec = vec![45, 21, 34, 19, 10, 90, 25, 78, 56, 34];
149+
for i in 0..original_vec.len() {
150+
list.add(original_vec[i]);
151+
}
152+
println!("Linked List is {}", list);
153+
list.reverse();
154+
println!("Reversed Linked List is {}", list);
155+
for i in 0..original_vec.len() {
156+
assert_eq!(reverse_vec[i], *list.get(i as i32).unwrap());
157+
}
158+
}
159+
}

0 commit comments

Comments
 (0)