Пример #1
0
class Stack:
    def __init__(self):
        self.size = 0
        #self.storage = [] ##array code commented out
        self.storage = LinkedList()

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

    def push(self, value):
        #return self.storage.append(value)
        self.storage.add_to_end(
            value)  ##from ll functions add to end of stack. LIFO
        self.size += 1  #size of in +1

    def pop(self):
        #if len(self.storage) == 0:
        #return None
        #else:
        #return self.storage.pop()
        if not self.storage.head:
            return None
        else:
            self.size -= 1  #remove 1 from in
            return self.storage.remove_at_end(
            )  #rmeove last input from end of stack. LIFO
Пример #2
0
class Queue:
    def __init__(self):
        self.size = 0
        #self.storage = [] ##array code commented out
        self.storage = LinkedList()
    
    def __len__(self):
        #return len(self.storage)
        return self.size

    def enqueue(self, value):
        #self.storage.append(value)
        self.storage.add_to_end(value) #adds to back of que
        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() #takes from front of que