Description:
And then define a new method in Skack class named as reverse().
In the reverse method, we have to reverse every link present in linked ist, as a result, the last node becomes first node and vice -versa.
Python3 Program:
class Node:
def __init__(self,data):
self.data = data
self.next = None
class Stack:
def __init__(self):
self.head = None
def display(self):
temp = self.head
print('Element of Stack is:[', end='')
while temp:
print(temp.data, end=", ")
temp = temp.next
print(']')
def push(self, data):
if self.head is None:
self.head = Node(data)
else:
temp = Node(data)
temp.next = self.head
self.head = temp
def reverse(self):
if self.head is None:
return None
temp1 = self.head
temp2 = temp1.next
self.head.next = None
while temp2:
temp1 = temp2
temp2 = temp1.next
temp1.next = self.head
self.head = temp1
def main():
l = Stack()
data = list(map(int, input('Enter Stack element:').split()))
for d in data:
l.push(d)
l.display()
l.reverse()
print('--------Stack is Reversed--------')
l.display()
if __name__ == '__main__':
main()
Output:
Enter Stack element:5 6 7 8 9 10 11 12
Element of Stack is:[12, 11, 10, 9, 8, 7, 6, 5, ]
--------Stack is Reversed--------
Element of Stack is:[5, 6, 7, 8, 9, 10, 11, 12, ]
Comments