I am working out of How To Think Like A Computer
Scientist.  I am on the chapter that covers linked
queues.  Here is some code that creates a linked queue
class:

class Queue:
        def __init__(self):
                self.length = 0
                self.head = None

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

        def insert(self, cargo):
                node = Node(cargo)
                node.next = None
                if self.head == None:
                        # if list is empty the new node goes first
                        self.head = node
                else:
                        # find the last node in the list
                        last = self.head
                        while last.next: 
                                last = last.next
                                # append the new node
                                last.next = node
                self.length = self.length + 1

        def remove(self):
                cargo = self.head.cargo
                self.head = self.head.next
                self.length = self.length - 1
                return cargo

The node is defined by:

class Node:
        def __init__(self, cargo=None, next=None):
                self.cargo = cargo
                self.next = next
                
        def __str__(self):
                return str(self.cargo)

I am confused by the insert class.  I am not quite
sure how it works.  More to the point, I am not sure
if it works:


                >>> from linked_queue import *
>>> queue = Queue()
>>> queue.isEmpty()
True
>>> queue.insert("cargo")
>>> print queue.head
cargo
>>> print queue.length
1
>>> queue.insert("more_cargo")
>>> print queue.length
2
>>> print queue.head
cargo

Where is my second node?  How can I access it?
                 
        
                
        

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to