public void PopTest() { var arr = UnsafeStack.Allocate <int>(10); for (int i = 1; i <= 10; i++) { UnsafeStack.Push(arr, i); } Assert.AreEqual(10, UnsafeStack.GetCount(arr)); var val = UnsafeStack.Pop <int>(arr); Assert.AreEqual(10, val); Assert.AreEqual(9, UnsafeStack.GetCount(arr)); // Reverse stack-iteration for (int i = 9; i > 0; i--) { var num = UnsafeStack.Pop <int>(arr); Assert.AreEqual(i, num); } Assert.AreEqual(0, UnsafeStack.GetCount(arr)); }
public void MutateTest() { var arr = UnsafeStack.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeStack.Push(arr, i); } for (int i = 9; i >= 0; i--) { Assert.AreEqual(i, UnsafeStack.Pop <int>(arr)); } UnsafeStack.Free(arr); }
static void Main(string[] args) { Console.WriteLine("Project is working with UnsafeStackAndLinkedList.dll\n"); // Working with unsafe code, implemented in class "UnsafeStack" Console.WriteLine("_______Working with unsafe Stack_______\n"); UnsafeStack stack = new UnsafeStack(); stack.Init(); for (int i = 0; i < 13; i++) { stack.PushBack(i * i); } stack.ShowCurrent(); Console.WriteLine("Popping top elements: "); for (int i = 0; i < 14; i++) { int temp = stack.Pop(); Console.Write(temp.ToString() + " "); } Console.WriteLine("Adding few more elements..."); for (int i = 0; i < 20; i++) { stack.PushBack(i * i * i); } stack.ShowCurrent(); // Show all elements without deleting stack.ExtractAllStack(); // Working with DoublyLinkedList Console.WriteLine("\n\n_______Working with DoublyLinkedList_______\n"); DoublyLinkedList linkedList = new DoublyLinkedList(); Random rand = new Random(12); for (int i = 0; i < 5; i++) { linkedList.InsertAtHead(rand.Next(0, 10)); } // few more elements linkedList.InsertAtHead(1000); linkedList.InsertAtHead(1200); linkedList.InsertAtHead(333); linkedList.InsertAtHead(2); linkedList.InsertAtHead(124); linkedList.InsertAtHead(34); linkedList.InsertAtHead(424); linkedList.InsertAtHead(1); linkedList.Print(); linkedList.PrintReverse(); Console.WriteLine("\nDeleting few elements...\n"); linkedList.Delete(1000); linkedList.Delete(333); linkedList.Delete(34); linkedList.Delete(124); // Printing Console.WriteLine(); linkedList.Print(); linkedList.PrintReverse(); }
public T Pop() { return(UnsafeStack.Pop <T>(m_inner)); }