Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.23 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5.  
  6. namespace TestStack
  7. {
  8.  
  9.     class Program
  10.     {
  11.         class StackItem
  12.         {
  13.             public int Value { get; set; }
  14.             public StackItem Next { get; set; }
  15.         }
  16.  
  17.         class Stack
  18.         {
  19.             public StackItem Top;
  20.             public void Push(int value)
  21.             {
  22.                 var item = new StackItem { Value = value };
  23.                 if (Top == null)
  24.                     Top = item;
  25.                 else
  26.                 {
  27.                     item.Next = Top;
  28.                     Top = item;
  29.                 }
  30.             }
  31.  
  32.             public int Pop()
  33.             {
  34.                 var result = Top.Value;
  35.                 Top = Top.Next;
  36.                 return result;
  37.             }
  38.         }
  39.  
  40.         const int size = 1000000;
  41.  
  42.         static void Main(string[] args)
  43.         {
  44.             var stack = new Stack<int>();
  45.             var myStack = new Stack();
  46.             var arrayStack = new List<int>();
  47.             var index = 0;
  48.             var list = new List<int>();
  49.            
  50.            
  51.             for (var i = 0; i < size; i++)
  52.             {
  53.                 var r = new Random();
  54.                 list.Add(r.Next());
  55.             }
  56.  
  57.             Stopwatch stopwatch = new Stopwatch();
  58.            
  59.             Console.WriteLine("Comparison time: Add");
  60.             stopwatch.Start();
  61.             for (var i = 0; i < size; i++)
  62.             {
  63.                 stack.Push(list[i]);
  64.             }
  65.             stopwatch.Stop();
  66.             Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " .Net Stack");
  67.            
  68.            
  69.             stopwatch.Restart();
  70.             for (var i = 0; i < size; i++)
  71.             {
  72.                 myStack.Push(list[i]);
  73.             }
  74.             stopwatch.Stop();
  75.             Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on simply connected list");
  76.  
  77.             stopwatch.Restart();
  78.             for (var i = 0; i < size; i++)
  79.             {
  80.                 arrayStack.Add(list[i]);
  81.                 index++;
  82.             }
  83.             stopwatch.Stop();
  84.             Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on list");
  85.  
  86.             Console.WriteLine();
  87.  
  88.             Console.WriteLine("Comparison time: Pop");
  89.             stopwatch.Start();
  90.             for (var i = 0; i < size; i++)
  91.             {
  92.                 stack.Pop();
  93.             }
  94.             stopwatch.Stop();
  95.             Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " .Net Stack");
  96.             stopwatch.Restart();
  97.             for (var i = 0; i < size; i++)
  98.             {
  99.                 myStack.Pop();
  100.             }
  101.             stopwatch.Stop();
  102.             Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on simply connected list");
  103.  
  104.             stopwatch.Restart();
  105.             for (var i = 0; i < size; i++)
  106.             {
  107.                 index--;
  108.                 arrayStack.RemoveAt(arrayStack.Count - 1);
  109.                
  110.             }
  111.             stopwatch.Stop();
  112.             Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds + " My stack on list");
  113.             return;
  114.         }
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement