Exemple #1
0
class Stack:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    def __len__(self):
        return self.size

    def push(self, value):
        self.size += 1
        self.storage.add_to_end(value)

    def pop(self):
        if self.size != 0:
            self.size -= 1
            return self.storage.remove_from_tail()
        else:
            return None
class Stack:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    def __len__(self):
        return self.size

    def push(self, value):
        # self.storage.append(value)
        self.storage.add_to_end(value)
        self.size += 1

    def pop(self):
        if not self.storage.head:
            return None
        else:
            self.size -= 1
            return self.storage.remove_at_end()
Exemple #3
0
class Queue:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()
    
    def __len__(self):
        return self.size

    def enqueue(self, value):
        # self.storage.append(value)
        self.storage.add_to_end(value)
        self.size += 1

    def dequeue(self):
        # if len(self.storage) != 0:
        #     return self.storage.pop(0)
        if not self.storage.head:
            return None
        else:
            self.size -= 1
            return self.storage.remove_from_head()
Exemple #4
0
class Queue:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    def __len__(self):
        return self.size

    def enqueue(self, value):
        self.size += 1
        self.storage.add_to_end(value)

    def dequeue(self):
        if self.size > 0:
            self.size -= 1
            return self.storage.remove_from_head()


# 3.
# The difference between linked lists and array methods are that the array methods are already built in parts of the storage list.
# We can use these instead of writing out our own in a linked list class, and we can reference indeces of the array whereas in linked
# lists we cannot.
Exemple #5
0
class Queue:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    # return queue size/length
    def __len__(self):
        return self.size

    def enqueue(self, value):
        # add one to queue size/length
        self.size += 1
        # add item to end of queue
        self.storage.add_to_end(value)

    def dequeue(self):
        # if queue empty, can't remove
        if self.size == 0:
            return None
        else:
            # remove one from queue size/length
            self.size -= 1
            # remove one item from top of queue
            return self.storage.remove_from_head()