Csharp/CSharp Tutorial/Data Structure/Stack
Clear a stack
<source lang="csharp">using System; using System.Collections; class MainClass {
static void Main(string[] args) { Stack a = new Stack(10); int x = 0; a.Push(x); x++; a.Push(x); foreach (int y in a) { Console.WriteLine(y); } a.Pop(); a.Clear(); }
}</source>
1 0
Pop and Peek
<source lang="csharp">using System; using System.Collections.Generic;
public class Tester { static void Main() { Stack<Int32> intStack = new Stack<Int32>(); for (int i = 0; i < 8; i++) { intStack.Push(i * 5); } PrintValues(intStack); Console.WriteLine("\n(Pop)\t{0}",intStack.Pop()); PrintValues(intStack); Console.WriteLine("\n(Pop)\t{0}",intStack.Pop()); PrintValues(intStack); Console.WriteLine("\n(Peek) \t{0}",intStack.Peek()); PrintValues(intStack); int[] targetArray = new int[12]; for (int i = 0; i < targetArray.Length; i++) { targetArray[i] = i * 100 + 100; } PrintValues(targetArray); intStack.CopyTo(targetArray, 6); PrintValues(targetArray); } public static void PrintValues(IEnumerable<Int32> myCollection) { IEnumerator<Int32> enumerator =myCollection.GetEnumerator(); while (enumerator.MoveNext()) Console.Write("{0} ", enumerator.Current); } }</source>
Push and pop value
<source lang="csharp">using System; using System.Collections;
class StackDemo {
public static void Main() { Stack st = new Stack(); st.Push(1); st.Push(2); foreach(int i in st) Console.Write(i + " "); st.Push(1); Console.Write("stack: "); foreach(int i in st) Console.Write(i + " "); Console.WriteLine();
Console.Write("Pop -> "); int a = (int) st.Pop(); Console.WriteLine(a); Console.Write("stack: "); foreach(int i in st) Console.Write(i + " "); Console.WriteLine(); }
}</source>
2 1 stack: 1 2 1 Pop -> 1 stack: 2 1
Stack And Queue
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel;
class StackAndQueue { static void Main() { Queue<int> queue = new Queue<int>(); Stack<int> stack = new Stack<int>(); for (int i = 0; i < 10; i++) { queue.Enqueue(i); stack.Push(i); } for (int i = 0; i < 10; i++) { Console.WriteLine("Stack:{0} Queue:{1}", stack.Pop(), queue.Dequeue()); } } }</source>