链表的创建与基本操作(Python版)
class LNode(object):
def __init__(self, data, p=0):
self.data = data
self.next = p
class LinkList(object):
def __init__(self):
self.head = None
def initList(self, data):
self.head = LNode(data[0])
p = self.head
for i in data[1:]:
node = LNode(i)
p.next = node
p = p.next
def isEmpty(self):
if self.head.next == 0:
print "Empty List!"
return 1
else:
return 0
def getLength(self):
if self.isEmpty():
exit(0)
p = self.head
len = 0
while p:
len += 1
p = p.next
return len
def traveList(self):
if self.isEmpty():
exit(0)
print '\rlink list traving result: ',
p = self.head
while p:
print p.data,
p = p.next
def insertElem(self, key, index):
if self.isEmpty():
exit(0)
if index<0 or index>self.getLength()-1:
print "\rKey Error! Program Exit."
exit(0)
p = self.head
i = 0
while i<=index:
pre = p
p = p.next
i += 1
node = LNode(key)
pre.next = node
node.next = p
def deleteElem(self, index):
if self.isEmpty():
exit(0)
if index<0 or index>self.getLength()-1:
print "\rValue Error! Program Exit."
exit(0)
i = 0
p = self.head
while p.next:
pre = p
p = p.next
i += 1
if i==index:
pre.next = p.next
p = None
return 1
pre.next = None
data = [1,2,3,4,5]
l = LinkList()
l.initList(data)
l.traveList()
l.insertElem(666, 3)
l.traveList()
l.deleteElem(4)
l.traveList()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)