Ejemplo n.º 1
0
class Stack:
    def __init__(self, num):
        self.num = num
        self.ll = LinkedList()
        self.rooms = 0
        self.stack_val = []

    def push(self, val):
        if self.num != self.rooms:
            self.ll.add_val(val)
            self.rooms += 1
            print(f"Adding {val} to the stacks")
            self.stack_val.append(val)
            return self.stack_val

        elif self.num == self.rooms:
            print("No Space to add")

    def peek(self):
        try:
            return f"First element {self.ll.show_ll()[:2]}"
        except Exception:
            return "Nothing on stack"

    def pop(self):
        if self.rooms > 0:
            self.rooms -= 1
            print(f"Removing {self.stack_val[-1]} from the stack")
            self.stack_val.pop()

        else:
            print("Stack is empty")


# st = Stack(5)
# #push elements to stack
# st.push(10)
# st.push(20)
# st.push(30)
# st.push(40)
# st.push(50)
# st.push(60)

# #peek
# print("__"*10)
# print(st.peek())

# #pop
# print("__"*10)
# st.pop()
# st.pop()
# st.pop()
# st.pop()
# st.pop()
# st.pop()
Ejemplo n.º 2
0
class Queue:
    def __init__(self, num):
        self.num = num
        self.ll = LinkedList()
        self.rooms = 0
        self.queue_val = []

    def add_to_queue(self, val):
        if self.num != self.rooms:
            self.ll.add_val(val)
            self.rooms += 1
            print(f"Adding {val} to the queue")
            self.queue_val.append(val)
            return self.queue_val

        elif self.num == self.rooms:
            print("Queue is full")

    def view_queue(self):
        try:
            return f"First element in (FIFO) -> {self.queue_val[0]}"
        except Exception:
            return "Nothing in queue"

    def dequeue(self):
        if self.rooms > 0:
            self.rooms -= 1
            print(f"Removing { self.queue_val[0]} from the queue")
            self.queue_val.pop(0)

        else:
            print("Queue is empty")


# q = Queue(3)
# #add to queue
# q.add_to_queue(10)
# q.add_to_queue(20)
# q.add_to_queue(30)
# q.add_to_queue(40)

# #view queue
# print("__"*10)
# print(q.view_queue())

# # remove from queue
# print("__"*10)
# q.dequeue()
# q.dequeue()
# q.dequeue()
# q.dequeue()