Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self,value):
- self.down=None
- self.up=None
- self.value=value
- class stack:
- def __init__(self):
- self.BottomOfStack=None
- self.TopOfStack=None
- def push(self,value,TopOfStack=None):
- if self.BottomOfStack==None:
- self.BottomOfStack=Node(value)
- return
- if TopOfStack==None:
- TopOfStack=self.BottomOfStack
- if TopOfStack.up==None:
- TopOfStack.up=Node(value)
- TopOfStack.up.down=TopOfStack
- self.TopOfStack=TopOfStack.up
- TopOfStack=self.TopOfStack
- else:
- self.push(value,TopOfStack.up)
- def pop(self):
- if self.TopOfStack==None or self.BottomOfStack==None:
- print("Stack is empty")
- return
- if self.TopOfStack.value==None or self.TopOfStack.up==self.BottomOfStack:
- print("Empty Stack")
- return
- if self.TopOfStack==self.BottomOfStack:
- popped=self.TopOfStack.value
- self.TopOfStack=self.TopOfStack.down
- self.BottomOfStack=self.BottomOfStack.down
- return popped
- else:
- popped=self.TopOfStack.value
- self.TopOfStack=self.TopOfStack.down
- self.TopOfStack.up=None
- return popped
- def ViewAll(self, BottomOfStack=None):
- if self.BottomOfStack==None:
- print("Full Stack: Stack is empty")
- return
- if BottomOfStack==None:
- BottomOfStack=self.BottomOfStack
- print("Full Stack: ",end="=> ")
- print(BottomOfStack.value,end=", ")
- if BottomOfStack.up!=None:
- print(BottomOfStack.up.value,end=", ")
- self.ViewAll(BottomOfStack.up)
- else:
- print()
- def peek(self):
- if self.BottomOfStack!=None:
- return self.BottomOfStack.value
- else:
- return "Stack is empty"
- class node:
- def __init__(self,value):
- self.left=None
- self.right=None
- self.value=value
- class queue:
- def __init__(self):
- self.head=None
- self.tail=None
- def add(self,value,head=None):
- if self.head==None:
- self.head=node(value)
- return
- if head==None:
- head=self.head
- if head.right==None:
- head.right=node(value)
- head.right.left=head
- self.tail=head.right
- else:
- self.add(value,head.right)
- def remove(self):
- if self.head==None or self.tail==None:
- print("Queue is empty")
- return
- if self.head.value==None or self.head.left==self.tail:
- return
- if self.head==self.tail:
- removed=self.head.value
- self.head=self.head.right
- self.tail=self.tail.right
- return removed
- else:
- removed=self.head.value
- self.head=self.head.right
- self.head.left=None
- return removed
- def peek(self):
- if self.head!=None:
- return self.head.value
- else:
- return "Queue is empty"
- def ViewAll(self,head=None):
- if self.head==None:
- print("Full Queue: Queue is empty")
- return
- if head==None:
- head=self.head
- print("Full Queue: ",end="=> ")
- print(head.value,end=", ")
- if head.right!=None:
- print(head.right.value,end=", ")
- self.ViewAll(head.right)
- else:
- print()
- if __name__=="__main__":
- print("###################################################################Stack###################################################################")
- s=stack()
- s.push("Potato")
- print(s.peek())
- s.push("Tomato")
- s.ViewAll()
- print("Popped:",s.pop())
- print("Popped:",s.pop())
- print(s.peek())
- s.ViewAll()
- s.push("Potatito")
- s.push("Tomatino")
- s.push("I' m Batman")
- print(s.peek())
- s.ViewAll()
- print("###################################################################Queue###################################################################")
- q = queue()
- q.add("Tomato")
- q.add("Potato")
- q.ViewAll()
- print(q.peek())
- print("Removed: ",q.remove())
- print(q.peek())
- print("Removed: ",q.remove())
- q.ViewAll()
- print(q.peek())
- q.add("Watermelon")
- q.add("Potato")
- q.add("Tomato")
- print(q.peek())
- print("Removed: ",q.remove())
- print(q.peek())
- print("Removed: ",q.remove())
- print(q.peek())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement