maxlarin2

Rub4

Jun 19th, 2014
578
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.40 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.     ///<summary>
  8.     ///Узел бинарного дерева
  9.     ///</summary>
  10.     ///<typeparam name="T">Тип данных в узле</typeparam>
  11.     public interface IStack<T>
  12.     {
  13.         ///<summary>
  14.         ///Возвращает элемент, который находится на вершине стека
  15.         ///</summary>
  16.         T Top { get; }
  17.  
  18.         ///<summary>
  19.         ///Удаляет и возвращает элемент с вершины стека
  20.         ///</summary>
  21.         ///<returns>Элемент, удалённый с вершины стека</returns>
  22.         T Pop();
  23.  
  24.         ///<summary>
  25.         ///Помещает элемент на вершину стека
  26.         ///</summary>
  27.         ///<param name="element">Новый элемент</param>
  28.         void Push(T element);
  29.     }
  30.  
  31.     class MyClass<T> : IStack<T>
  32.     {
  33.         List<T> Stack = new List<T>();
  34.         public MyClass(T[] stack)
  35.         {
  36.             Stack.AddRange(stack);
  37.         }
  38.        
  39.         public T Top
  40.         {
  41.             get
  42.             {
  43.                 return Stack.Last();
  44.             }
  45.         }
  46.         ///<summary>
  47.         ///Помещает элемент на вершину стека
  48.         ///</summary>
  49.         ///<param name="element">Новый элемент</param>
  50.         public T Pop()
  51.         {
  52.             var rt = Stack.Last();
  53.             Stack.RemoveAt(Stack.LastIndexOf(Stack.Last()));
  54.             return rt;
  55.              
  56.         }
  57.         public void Push(T element)
  58.         {
  59.             Stack.Add(element);
  60.         }
  61.         public override string ToString()
  62.         {
  63.             string s = "";
  64.             foreach (var item in Stack)
  65.             {
  66.                 s += item + "\t";
  67.             }
  68.             return s;
  69.         }
  70.     }
  71.     class Program
  72.     {
  73.         static void Main(params string[] args)
  74.         {
  75.             MyClass<int> mas = new MyClass<int>(new int[] {3,4,5,6,7});
  76.             Console.WriteLine(mas.ToString());
  77.             Console.WriteLine(mas.Pop());
  78.             Console.WriteLine(mas.ToString());
  79.             mas.Push(15);
  80.             Console.WriteLine(mas.ToString());
  81.             Console.WriteLine(mas.Top);
  82.             Console.ReadKey();
  83.  
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment