Skip to content

Commit 9d56a8d

Browse files
Reverse stack
1 parent e945187 commit 9d56a8d

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

Reverse_stack.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
class Node:
2+
def __init__(self, value):
3+
self.value = value
4+
self.next = None
5+
6+
class Stack:
7+
def __init__(self):
8+
self.head = None
9+
self.num_element = 0
10+
def push(self, value):
11+
if self.head is None:
12+
self.head = Node(value)
13+
else:
14+
new_node = Node(value)
15+
new_node.next = self.head
16+
self.head = new_node
17+
self.num_element += 1
18+
def pop(self):
19+
if self.head is None:
20+
return None
21+
value = self.head.value
22+
self.head = self.head.next
23+
self.num_element -=1
24+
return value
25+
def size(self):
26+
return self.num_element
27+
def is_empty(self):
28+
return self.num_element == 0
29+
def top(self):
30+
return self.head.value
31+
32+
def reverseStack(stack):
33+
new_stack = Stack()
34+
for e in range(stack.size()):
35+
poped_element = stack.pop()
36+
new_stack.push(poped_element)
37+
return new_stack
38+
39+
stack1 = Stack()
40+
stack1.push(1)
41+
stack1.push(2)
42+
stack1.push(3)
43+
stack1.push(4)
44+
stack2 = reverseStack(stack1)
45+
46+

0 commit comments

Comments
 (0)