展开全部
python 2.6用add很正常啊,add看起来没啥问题,到是别的函数有些小问题。
1. remove前判断下这个item是不是存在
2.if curNode is head : 应该是 if curNode is self._head
3._BagIterator(self._head) 是个62616964757a686964616fe59b9ee7ad9431333332616363什么东西? 自己写了一个
4. 下划线最好不要加,除非你知道它是用来干什么的.
5.a = linkNode() 而不是 a = linkNodeclass linkNode:
def __init__(self):
self._head = None
self._size = 0
def __len__(self):
return self._size
def __contains__(self,target):
curNode = self._head
while curNode is not None and curNode.item != target:
curNode = curNode.next
return curNode is not None
def add( self, item ):
newNode = BagListNode( item )
newNode.next = self._head
self._head = newNode
self._size += 1
def remove(self, item):
preNode = None
curNode = self._head
if not item in self:
print item," is not exist."
return None
while curNode is not None and curNode.item != item:
preNode = curNode
curNode = curNode.next
self._size -= 1
if curNode is self._head :
self._head = curNode.next
else:
preNode.next = curNode.next
def __iter__(self):
curNode = self._head
while True:
yield curNode
if curNode.next is not None:
curNode = curNode.next
else:
break
class BagListNode( object ):
def __init__( self, item ):
self.item = item
self.next = None