class Node:
def __init__(self,elem = None,next = None):
self.elem = elem
self.next = next
def getNext(self):
return self.nex
def getElem(self):
return self.elem
def getNextElem(self):
return self.nex.elem
def setnext(self,item):
self.next = item
class Chain():
def __init__(self):
self.head = None
self.len = 0
def isEmpty(self):
return self.len==0
def addToHead(self,item):
item = Node(item)
if self.isEmpty():
self.head = item
else:
item.next = self.head
self.head = item
self.len += 1
def addToEnd(self,item):
item = Node(item)
if self.isEmpty():
print("is Empty chain")
self.head = item
else:
current = self.head
while current.next != None:
current = current.next
current.next = item
self.len+=1
def addToIndex(self,n,item):
m = 0
item = Node(item)
if self.isEmpty():
self.head = item
self.len += 1
current = self.head
try:
while m != n-1 and n<self.len:
current = current.next
m +=1
current.next,item.next = item,current.next
self.len +=1
except:
print("index error")
def printf(self):
list = []
current = self.head
while current:
list.append(current.elem)
current = current.next
print(list)
return list
def deleteElem(self,elem):
#根据元素的大小来进行判断
if self.isEmpty():
print("is Empty Chain")
return -1
current = self.head
n = 0
#这是一个 单项链表 要找到它前面的哪一个节点
while current.next.elem != elem and n<=self.len:
#当不等于的时候继续往下寻找
current = current.next
n+=1
if n > self.len:
print("not find elem")
return -1
#打印出这个数字
print(current.next.elem)
current.next = current.next.next
self.len-=1
def getChainLen(self):
print(self.len)
chain = Chain()
chain.addToHead(10)
chain.addToHead(8)
chain.addToEnd(2)
chain.addToEnd(2)
chain.printf()
chain.addToIndex(2,6)
chain.addToIndex(2,5)
chain.printf()
chain.deleteElem(10)
chain.deleteElem(2)
chain.printf()
chain.getChainLen()
這是結果
/usr/bin/python3.6 /home/mypy/PycharmProjects/numpy_tataitic/tataitic/chain.py
[8, 10, 2, 2]
[8, 10, 5, 6, 2, 2]
10
2
[8, 5, 6, 2]
4
Process finished with exit code 0