Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- namespace ConsoleApplication1
- {
- ///<summary>
- ///Узел бинарного дерева
- ///</summary>
- ///<typeparam name="T">Тип данных в узле</typeparam>
- public interface IStack<T>
- {
- ///<summary>
- ///Возвращает элемент, который находится на вершине стека
- ///</summary>
- T Top { get; }
- ///<summary>
- ///Удаляет и возвращает элемент с вершины стека
- ///</summary>
- ///<returns>Элемент, удалённый с вершины стека</returns>
- T Pop();
- ///<summary>
- ///Помещает элемент на вершину стека
- ///</summary>
- ///<param name="element">Новый элемент</param>
- void Push(T element);
- }
- class MyClass<T> : IStack<T>
- {
- List<T> Stack = new List<T>();
- public MyClass(T[] stack)
- {
- Stack.AddRange(stack);
- }
- public T Top
- {
- get
- {
- return Stack.Last();
- }
- }
- ///<summary>
- ///Помещает элемент на вершину стека
- ///</summary>
- ///<param name="element">Новый элемент</param>
- public T Pop()
- {
- var rt = Stack.Last();
- Stack.RemoveAt(Stack.LastIndexOf(Stack.Last()));
- return rt;
- }
- public void Push(T element)
- {
- Stack.Add(element);
- }
- public override string ToString()
- {
- string s = "";
- foreach (var item in Stack)
- {
- s += item + "\t";
- }
- return s;
- }
- }
- class Program
- {
- static void Main(params string[] args)
- {
- MyClass<int> mas = new MyClass<int>(new int[] {3,4,5,6,7});
- Console.WriteLine(mas.ToString());
- Console.WriteLine(mas.Pop());
- Console.WriteLine(mas.ToString());
- mas.Push(15);
- Console.WriteLine(mas.ToString());
- Console.WriteLine(mas.Top);
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment