Esempio n. 1
0
class Queue(Generic[T]):
    llist = LinkedList.DoublyLinkedList()

    def __init__(self, first_elem=None):
        if first_elem is not None:
            self.offer(first_elem)

    # return the size of the queue
    def size(self):
        return self.llist.size

    def isEmpty(self):
        return self.size() == 0

    # peek the element at the front of the queue
    # the method throws an error if the queue is empty
    def peek(self):
        if self.isEmpty():
            raise QueueError("Queue is empty!")
        return self.llist.peekFirst()

    # poll an element from the front of the queue
    # the method throws an error if the queue is empty
    def poll(self):
        if self.isEmpty():
            raise QueueError("Queue is empty!")
        return self.llist.removeLast()

    # add an element to the back of the queue
    def offer(self, elem):
        self.llist.addLast(elem)
Esempio n. 2
0
def main():
    data1 = "hello"
    data2 = "I"
    data3 = "am"
    data4 = "your"
    data5 = "father"
    data6 = "luke"
    data7 = "skywalker"

    linked_list = LinkedList.DoublyLinkedList()
    linked_list.add(data1)
    linked_list.add(data2)
    linked_list.add(data3)
    linked_list.add(data4)
    linked_list.add(data5)
    linked_list.add(data6)
    linked_list.add(data7)

    print(linked_list)

    linked_list.removeFirst()
    linked_list.removeLast()

    print(linked_list)

    print(linked_list.contains("your"))
    print(linked_list.peekLast())
Esempio n. 3
0
 def __init__(self, firstElem):
     self.linked_list = LinkedList.DoublyLinkedList()
     if firstElem is not None:
         self.push(firstElem)