无序链表需要实现的操作:
- UnorderList():创建一个空表
- add(item):在表头位置添加一个新的数据项
- isEmpty():是否为空表,返回一个布尔值
- size():返回链表中数据项的个数
- search(item):查找链表中是否存在某个数据项,返回一个布尔值
- remove(item):移除链表中的某个指定数据项,若该数据项不存在,抛出异常
- append(item):在链表末尾的位置添加数据项
- insert(position, item):在指定位置插入数据项,若指定位置大于链表长度,则默认在链表尾部添加待插入的数据项
- pop():移除链表最后一个数据项
Node 类:
class Node:
def __init__(self,item):
self.item = item
self.next = None
def getdata(self):
return self.item
def getnext(self):
return self.next
def setdata(self,newitem):
self.item = newitem
def setnext(self,newnext):
self.next = newnext
UnorderedList 类:
import node #我的 Node 类被保存在同目录下的node.py文件中
class UnorderedList:
def __init__(self):
self.head = None
def isEmpty(self):
return self.head == None
def add(self,item):
#在表头添加节点
temp = Node(item)
temp.setnext(self.head)
self.head = temp
def size(self):
current = self.head
count = 0
while current != None:
count