Concept Flow - Peek Top Element of Stack
Start
Check if stack is empty?
Yes→Return error or null
No
Access top element
Return top element
End
The flow checks if the stack is empty. If not, it accesses and returns the top element without removing it.
Stack<int> stack = new Stack<int>(); stack.Push(10); stack.Push(20); int top = stack.Peek(); Console.WriteLine(top);
| Step | Operation | Stack State (top -> bottom) | Pointer Changes | Visual State |
|---|---|---|---|---|
| 1 | Create empty stack | empty | head = null | null |
| 2 | Push 10 | 10 | head -> node(10) | 10 -> null |
| 3 | Push 20 | 20 -> 10 | head -> node(20) | 20 -> 10 -> null |
| 4 | Peek top element | 20 -> 10 | head unchanged | 20 -> 10 -> null |
| 5 | Print top element | 20 -> 10 | head unchanged | 20 -> 10 -> null |
| 6 | End | 20 -> 10 | head unchanged | 20 -> 10 -> null |
| Variable | Start | After Step 2 | After Step 3 | After Step 4 | Final |
|---|---|---|---|---|---|
| stack | empty | 10 | 20 -> 10 | 20 -> 10 | 20 -> 10 |
| head pointer | null | node(10) | node(20) | node(20) | node(20) |
| top element (peek) | N/A | N/A | N/A | 20 | 20 |
Peek Top Element of Stack: - Checks if stack is empty first - Returns top element without removing it - Stack remains unchanged after peek - Throws error or returns null if empty - Useful to see next item without pop
Peek() method do in a stack?myStack in C#?Stack<int> numbers = new Stack<int>(); numbers.Push(10); numbers.Push(20); numbers.Push(30); Console.WriteLine(numbers.Peek()); Console.WriteLine(numbers.Count);
Stack<string> stack = new Stack<string>(); string top = stack.Peek; Console.WriteLine(top);
Stack<char> letters with elements 'a', 'b', 'c' pushed in that order, write the output after this code:
char top1 = letters.Peek(); letters.Pop(); char top2 = letters.Peek(); Console.WriteLine(top1); Console.WriteLine(top2); Console.WriteLine(letters.Count);
Pass the test and this pattern moves unknown