#coding = utf-8
class Node(object):
def __init__(self,data=0,next=None):
self.data = data
self.next = next
class LinkQueue(object):
def __init__(self):
self.front = None
self.rear = None
self.num = 0
def getLength(self):
return self.num
def is_empty(self):
if self.num == 0:
return True
else:
return False
def clear(self):
self.front = None
self.rear = None
self.num = 0
def push(self,item):
node = Node(item)
if self.front == None and self.rear == None:
self.front = node
self.rear = node
self.num += 1
else:
self.rear.next = node
self.rear = node
self.num += 1
def getFront(self):
if self.is_empty():
print "empty,cannot get front"
return None
else:
return self.front.data
def shift(self):
if self.is_empty():
print "empty,cannot pop"
return None
else:
tmpNode = self.front
self.front = self.front.next
self.num -= 1
return tmpNode.data
def printQueue(self):
s=""
tmp = self.front
while tmp != self.rear:
s += str(tmp.data)
tmp = tmp.next
s += str(self.rear.data)
return s
if __name__ == '__main__':
s = LinkQueue()
s.push(1)
s.push(2)
s.push(3)
print s.printQueue()
print s.shift()
print s.printQueue()