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

    def __str__(self):
        return f"{self.storage}"

    def __len__(self):
        return len(self.storage)

    def enqueue(self, value):
        self.storage.add_to_tail(value)

    def dequeue(self):
        if len(self.storage) > 0:
            return self.storage.remove_from_head()
Exemple #2
0
class Queue:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    def __len__(self):
        if self.size >= 0:
            return self.size
        else:
            return 0

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

    def dequeue(self):
        if self.size > 0:
            value = self.storage.remove_from_head()
            self.size -= 1
            return value
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 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_head(value)

    def pop(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. Additionally when implementing linked lists with stacks, it seems we need to have an additional 'Remove from tail'
# method in order to properly pop() in the way that is expected with a stack.
Exemple #6
0
class Stack:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

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

    def push(self, value):
        # add one to size
        self.size += 1
        # add item to top of stack
        self.storage.add_to_head(value)

    def pop(self):
        # if stack empty, can't remove anything
        if self.size == 0:
            return None
        else:
            # subtract one from size
            self.size -= 1
            # remove from top of stack & return item
            return self.storage.remove_from_head()
Exemple #7
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()