我在使用链表上的类时遇到了一个障碍。我的代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class Item(object):
def __init__(self, data, next_item = None):
self.data = data
self.next_item = next_item
def get_item(self):
return self.data
def set_next(self, setnext):
self.next_item = setnext
def get_next(self):
return self.next_item
class LinkedList(object):
def __init__(self):
self.head = None
def add(self,item):
temp = Item(item)
temp.set_next(self.head)
self.head = temp
def find(self, item):
current = self.head
while current != None:
if current == item:
print "Found It!"
else:
current = current.get_next()
def print_list(self):
node = self.head
while node:
print node.get_item()
node = node.get_next()
def size(self):
counter = 0
current = self.head
while current != None:
counter += 1
current = current.get_next()
print counter
def insert(self,item,lpos):
current = self.head
while current != lpos:
current = current.get_next()
if current == None:
return None
else:
item_insert = Item(item, lpos.next_item())
lpos.set_next(item_insert)
myList = LinkedList()
myList.add(1)
myList.add(2)
myList.add(3)
myList.insert(8,2)
运行此代码时,方法(insert)失败,并出现以下错误:
Traceback (most recent call last):
File "main.py", line 72, in <module>
myList.insert(8,2)
File "main.py", line 56, in insert
item_insert = Item(item, lpos.Item.next_item())
AttributeError: 'int' object has no attribute 'Item'
insert方法将允许您在指定点向链表添加节点,并在考虑insert的情况下重新排列适当的指针。你知道吗
请告知!你知道吗
lpos是一个索引,其类型是
int
。但是你想要设置的是Item.next_item()
,当然它不起作用。更改:收件人:
无论如何,insert的实现应该是不正确的。你知道吗
你没有注意到“item”和“index”之间的区别。索引是列表中项目位置的无符号数字,但该项目是列表中的节点。你知道吗
相关问题 更多 >
编程相关推荐