Реализация стека - C#
Формулировка задачи:
Здравствуйте!
По заданию требуется реализовать двусвязный стек. Помогите пожалуйста дописать двусвязность. Уже несколько дней не могу догнать как это сделать.
Листинг программы
- public class MyStack
- {
- public string data;
- public MyStack L;
- public MyStack R;
- public MyStack()
- {
- this.L = null;
- this.R = null;
- }
- public MyStack(MyStack ob)
- {
- this.data = ob.data;
- this.L = ob.L;
- this.R = ob.R;
- }
- public void Push(string _data)
- {
- MyStack Temp = new MyStack();
- Temp.data = _data;
- Temp.L = this.L;
- this.L = Temp;
- this.R = new MyStack(this);
- }
- public void Pop()
- {
- if (this.L == null)
- return;
- MyStack Temp = this.L;
- this.L = Temp.L;
- this.R = null;
- Temp = null;
- }
- public string Top()
- {
- if (this.L == null)
- return "";
- else
- return this.L.data;
- }
- public bool IsEmpty()
- {
- return (this.L == null);
- }
- public void ShowOnDataGridView(DataGridView dataGridView)
- {
- DataGridViewInit(dataGridView);
- int i = 0;
- if (this.L == null)
- MessageBox.Show("Stack is empty!!1");
- else
- {
- MyStack Temp = this.L;
- while (Temp != null)
- {
- dataGridView.Rows.Add(++i, Temp.data);
- Temp = Temp.L;
- }
- }
- }
Решение задачи: «Реализация стека»
textual
Листинг программы
- public class Node
- {
- public object Data { get; set; }
- public Node Next { get; set; }
- public Node(object d)
- {
- this.Data = d;
- }
- public void AddNextNode(object d)
- {
- Node node = this;
- Node newNode = new Node(d);
- while (node.Next != null)
- {
- node = node.Next;
- }
- node.Next = newNode;
- }
- }
- public class Stack
- {
- private Node _top = null;
- public int Count
- {
- get;
- private set;
- }
- public Stack()
- {
- this.Count = 0;
- }
- public void Push(object obj)
- {
- Node newNode = new Node(obj);
- if (_top == null)
- _top = newNode;
- else
- {
- Node temp = _top;
- _top = newNode;
- _top.Next = temp;
- }
- Count++;
- }
- public object Pop()
- {
- Node objToPop = _top;
- _top = _top.Next;
- Count--;
- return objToPop.Data;
- }
- public void Clear()
- {
- _top = null;
- Count = 0;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д