Присвоить значение одного стека другому - C#
Формулировка задачи:
Есть 2 стека. Один основной, другой как буфер. Надо в одном стеке сохранять значение другого на время. Но после работы с первым стеком, второй почему-то тоже обнуляется. Что за ерунда?
Предположим, вот так
Stack<int> a = new Stack<int>(); Stack<int> temp = new Stack<int>(); temp = a; //Присвоили значение temp a.Push(3); a.Push(5); a.Push(1); a.Pop();// После первого же Pop значение temp тоже обнуляется a.Pop(); a.Pop();
Решение задачи: «Присвоить значение одного стека другому»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GenericDelegate { public class MyStack<T>:IEnumerable<T> { private Stack<T> tempStack; private Stack<T> usedStack; public MyStack() { tempStack = new Stack<T>(); usedStack = new Stack<T>(); } public void AddInTemp(T arg) { tempStack.Push(arg); } public void AddInUsed(T arg) { usedStack.Push(arg); } public void AddInBoth(T arg) { tempStack.Push(arg); usedStack.Push(arg); } public T GetFromUsed() { return usedStack.Pop(); } public T[] GetFromBoth() { return new T[] { tempStack.Pop(), usedStack.Pop() }; } public IEnumerator<T> GetEnumerator() { return usedStack.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return usedStack.GetEnumerator(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д