Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- namespace TestStack
- {
- class Program
- {
- class StackItem
- {
- public int Value { get; set; }
- public StackItem Next { get; set; }
- }
- class Stack
- {
- public StackItem Top;
- public void Push(int value)
- {
- var item = new StackItem { Value = value };
- if (Top == null)
- Top = item;
- else
- {
- item.Next = Top;
- Top = item;
- }
- }
- public int Pop()
- {
- var result = Top.Value;
- Top = Top.Next;
- return result;
- }
- }
- const int size = 1000000;
- static void Main(string[] args)
- {
- var stack = new Stack<int>();
- var myStack = new Stack();
- var arrayStack = new List<int>();
- var index = 0;
- var list = new List<int>();
- for (var i = 0; i < size; i++)
- {
- var r = new Random();
- list.Add(r.Next());
- }
- Stopwatch stopwatch = new Stopwatch();
- Console.WriteLine("Comparison time: Add");
- stopwatch.Start();
- for (var i = 0; i < size; i++)
- {
- stack.Push(list[i]);
- }
- stopwatch.Stop();
- Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " .Net Stack");
- stopwatch.Restart();
- for (var i = 0; i < size; i++)
- {
- myStack.Push(list[i]);
- }
- stopwatch.Stop();
- Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on simply connected list");
- stopwatch.Restart();
- for (var i = 0; i < size; i++)
- {
- arrayStack.Add(list[i]);
- index++;
- }
- stopwatch.Stop();
- Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on list");
- Console.WriteLine();
- Console.WriteLine("Comparison time: Pop");
- stopwatch.Start();
- for (var i = 0; i < size; i++)
- {
- stack.Pop();
- }
- stopwatch.Stop();
- Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " .Net Stack");
- stopwatch.Restart();
- for (var i = 0; i < size; i++)
- {
- myStack.Pop();
- }
- stopwatch.Stop();
- Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on simply connected list");
- stopwatch.Restart();
- for (var i = 0; i < size; i++)
- {
- index--;
- arrayStack.RemoveAt(arrayStack.Count - 1);
- }
- stopwatch.Stop();
- Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on list");
- return;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement