Last active
September 11, 2020 17:18
-
-
Save arlm/7d573c53c599d647b7f095f18d1befc9 to your computer and use it in GitHub Desktop.
LinkedList + Stack + Queue
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
public class QueueDeque<T> | |
{ | |
public void Enqueue(T value) | |
{ | |
throw new NotImplementedException("You need to implement this function."); | |
} | |
public T Dequeue() | |
{ | |
throw new NotImplementedException("You need to implement this function."); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Xunit; | |
public class QueueTests | |
{ | |
[Fact] | |
public void Push_and_pop_are_first_in_last_out_order() | |
{ | |
var deque = new QueueDeque<int>(); | |
deque.Enqueue(10); | |
deque.Enqueue(20); | |
Assert.Equal(10, deque.Dequeue()); | |
Assert.Equal(20, deque.Dequeue()); | |
} | |
[Fact] | |
public void Push_and_pop_can_handle_multiple_values() | |
{ | |
var deque = new QueueDeque<int>(); | |
deque.Enqueue(10); | |
deque.Enqueue(20); | |
deque.Enqueue(30); | |
Assert.Equal(10, deque.Dequeue()); | |
Assert.Equal(20, deque.Dequeue()); | |
Assert.Equal(30, deque.Dequeue()); | |
} | |
[Fact] | |
public void All_methods_of_manipulating_the_deque_can_be_used_together() | |
{ | |
var deque = new QueueDeque<int>(); | |
deque.Enqueue(10); | |
deque.Enqueue(20); | |
Assert.Equal(10, deque.Dequeue()); | |
deque.Enqueue(30); | |
Assert.Equal(20, deque.Dequeue()); | |
deque.Enqueue(40); | |
deque.Enqueue(50); | |
Assert.Equal(30, deque.Dequeue()); | |
Assert.Equal(40, deque.Dequeue()); | |
Assert.Equal(50, deque.Dequeue()); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
public class StackDeque<T> | |
{ | |
public void Push(T value) | |
{ | |
throw new NotImplementedException("You need to implement this function."); | |
} | |
public T Pop() | |
{ | |
throw new NotImplementedException("You need to implement this function."); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Xunit; | |
public class StackTests | |
{ | |
[Fact] | |
public void Push_and_pop_are_first_in_last_out_order() | |
{ | |
var deque = new StackDeque<int>(); | |
deque.Push(10); | |
deque.Push(20); | |
Assert.Equal(20, deque.Pop()); | |
Assert.Equal(10, deque.Pop()); | |
} | |
[Fact] | |
public void Push_and_pop_can_handle_multiple_values() | |
{ | |
var deque = new StackDeque<int>(); | |
deque.Push(10); | |
deque.Push(20); | |
deque.Push(30); | |
Assert.Equal(30, deque.Pop()); | |
Assert.Equal(20, deque.Pop()); | |
Assert.Equal(10, deque.Pop()); | |
} | |
[Fact] | |
public void All_methods_of_manipulating_the_deque_can_be_used_together() | |
{ | |
var deque = new StackDeque<int>(); | |
deque.Push(10); | |
deque.Push(20); | |
Assert.Equal(20, deque.Pop()); | |
deque.Push(30); | |
Assert.Equal(30, deque.Pop()); | |
deque.Push(40); | |
deque.Push(50); | |
Assert.Equal(50, deque.Pop()); | |
Assert.Equal(40, deque.Pop()); | |
Assert.Equal(10, deque.Pop()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment