[英]Return the data value stored in the node at that index position
class UnorderedList:
def __init__(self):
self.head = None
def __str__(self):
item = self.head
items = list()
while item:
items.append(str(item.get_data()))
item = item.get_next()
return '[' + ' '.join(items) + ']'
def add(self, item):
new_node = Node(item)
new_node.set_next(self.head)
self.head = new_node
def get(self, index):
item = self.head
length = item.size()
string1 = " "
for index in range[0, length -1, -1]:
string1 += index
测试是:会给我7
my_list = UnorderedList() for x in [3,5,4,6,7,8]: my_list.add(x) print(my_list.get(1))
我需要编写def get(self,index)函数,以便它从结尾开始返回索引的值。
我该怎么做?
您可以尝试以下方法:
for index in range[0, length -1, -1]:
string1 += (length - 1) - index
假设您的课程节点:
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def get_data(self):
return self.data
def get_next(self):
return self.next
def set_data(self,newdata):
self.data = newdata
def set_next(self,newnext):
self.next = newnext
def __str__(self):
return str(self.data)
更改您的类UnorderedList(这是链接列表):
1,如果要获取链表的大小,请添加函数size
2,您的range
功能不正确,请参考官方文档 ,应为范围(长度-1、0,-1)
3,对于链表,功能是获取元素而不是通过索引,可以搜索并获取元素,直到找到特定元素为止,参见下面的函数get
class UnorderedList:
def __init__(self):
self.head = None
def isEmpty(self):
return self.head == None
def __str__(self):
item = self.head
items = list()
while item:
items.append(str(item.get_data()))
item = item.get_next()
return '[' + ' '.join(items) + ']'
def add(self,item):
new_node = Node(item)
new_node.set_next(self.head)
self.head = new_node
def size(self):
current = self.head
count = 0
while current != None:
count = count + 1
current = current.get_next()
return count
def get(self,item):
current = self.head
found = False
string1=""
while current != None and not found:
string1 += str(current)
if current.get_data() == item:
found = True
else:
current = current.get_next()
return string1
测试:
my_list = UnorderedList()
for x in [3,5,4,6,7,8]:
my_list.add(x)
print my_list.get(4)
它将所有元素添加为链接列表my_list
,然后可以获取所有元素,直到找到4为止,输出为:
8764
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.