This is a Python program to implement a stack using a linked list.
The program creates a stack and allows the user to perform push and pop operations on it.
1. Create a class Node with instance variables data and next.
2. Create a class Stack with instance variable head.
3. The variable head points to the first element in the linked list.
4. Define methods push and pop inside the class Stack.
5. The method push adds a node at the front of the linked list.
6. The method pop returns the data of the node at the front of the linked list and removes the node. It returns None if there are no nodes.
7. Create an instance of Stack and present a menu to the user to perform operations on the stack.
Here is the source code of a Python program to implement a stack using a linked list. The program output is shown below.
class Node: def __init__(self, data): self.data = data self.next = None class Stack: def __init__(self): self.head = None def push(self, data): if self.head is None: self.head = Node(data) else: new_node = Node(data) new_node.next = self.head self.head = new_node def pop(self): if self.head is None: return None else: popped = self.head.data self.head = self.head.next return popped a_stack = Stack() while True: print('push <value>') print('pop') print('quit') do = input('What would you like to do? ').split() operation = do[0].strip().lower() if operation == 'push': a_stack.push(int(do[1])) elif operation == 'pop': popped = a_stack.pop() if popped is None: print('Stack is empty.') else: print('Popped value: ', int(popped)) elif operation == 'quit': break
1. An instance of Stack is created.
2. The user is presented with a menu to perform push and pop operations on the stack.
3. The chosen operation is performed by calling the corresponding method of the stack.
Case 1: push <value> pop quit What would you like to do? push 15 push <value> pop quit What would you like to do? push 3 push <value> pop quit What would you like to do? pop Popped value: 3 push <value> pop quit What would you like to do? pop Popped value: 15 push <value> pop quit What would you like to do? pop Stack is empty. push <value> pop quit What would you like to do? quit Case 2: push <value> pop quit What would you like to do? pop Stack is empty. push <value> pop quit What would you like to do? quit
Sanfoundry Global Education & Learning Series – Python Programs.
To practice all Python programs, here is complete set of 150+ Python Problems and Solutions.
- Get Free Certificate of Merit in Python Programming
- Participate in Python Programming Certification Contest
- Become a Top Ranker in Python Programming
- Take Python Programming Tests
- Chapterwise Practice Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Chapterwise Mock Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Apply for Python Internship
- Apply for Programming Internship
- Buy Python Books
- Practice Programming MCQs
- Buy Information Technology Books