python实现单链表
一下功能
add(item):头位置添加item,无返回值
remove(item):从中移除item
search(item):搜索item,返回布尔值
isEmpty ():返回布尔值,判断链表是否为空
length():返回链表中元素个数
append(item):在尾添加item,无返回值
index(pos,item):在pos位置添加元素item
pop():尾删除,返回最后一个元素
创建节点(Node)类:
class Node:
def __init__(self,initdata):
self.data=initdata
self.next=None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data=newdata
def setNext(self,newnext):
self.next=newnext
链表的实现
from node import Node
class UnorderList:
def __init__(self):
self.head=None
def add(self,item):
temp=Node(item)
temp.setNext(self.head)
self.head=temp
def isEmpty(self):
self.head==None
def length(self):
current=self.head
num=0
while current != None:
current=current.getNext()
num+=1
return num
def search(self,foud):
current=self.head
found=False
while current !=None and not found:
if current.getData()==foud:
found=True
else:
current=current.getNext()
return found
def remove(self,de):
current=self.head
pervosivy=None
found=False
while not found:
if current.getData()==de:
found=True
else:
pervosivy=current
current=current.getNext()
if pervosivy==None:
self.head=current.getNext()
else:
pervosivy.setNext(current.getNext())
def append(self,item):
temp=Node(item)
current=self.head
pervosity=None
while current!=None:
pervosity=current
current=current.getNext()
if self.head==None:
self.head=temp
else:
pervosity.setNext(temp)
def index(self,item):
temp=Node(item)
current=self.head
found=False
count=0
while current!=None and not found:
if current.getData()==temp.getData():
found=True
else:
current=current.getNext()
count += 1
if found==True:
return count
else:
print('sorry item not in unorderList')
def insert(self,setting,item):
temp=Node(item)
current=self.head
pervosity=None
count=0
while count <setting and current!=None:
pervosity=current
current=current.getNext()
count+=1
if pervosity==None:
temp.setNext(self.head)
self.head=temp
else:
temp.setNext(current)
pervosity.setNext(temp)
def pop(self):
current=self.head
persovity=None
while current.getNext()!=None:
persovity=current
a=persovity.getData()
current=current.getNext()
b=current.getData()
if persovity==None:
return None
else:
persovity.setNext(current.getNext())
return current.getData()插入代码片
还没有设置抛出异常