class HeroNode:
# 构造器
def __init__(self,hNo,name,nickname):
self.no = hNo
self.next = None
self.name = name
self.nickname = nickname
# 为了显示方便重写str
def __str__(self):
return "HeroNO:"+str(self.no)+" HeroName:"+str(self.name)+" Nickname: "+str(self.nickname)
class SingleLinkedList:
# 初始化头节点
head = HeroNode(0,"","")
#添加节点到单向列表
# 思路:当不考虑链表顺序时
# 1.找到当前链表的最后节点
# 2.找到最后这个节点的next 指向新的节点
def add(self,heroNode):
#因为head节点不能动,因此我们需要一个辅助遍历的Temp
temp = self.head
#遍历链表,找到最后
while(True):
#找到链表的最后
if temp.next == None:
break
temp = temp.next
#当退出While循环时,temp就指向了链表的最后
temp.next = heroNode
#显示链表【遍历】
def list(self):
#判断链表是否为空
if(self.head.next == None):
print("链表为空")
return
#因为头节点不能动,所以我们使用一个辅助变量来遍历
temp = self.head.next
while(True):
#判断是否到了链表的尾部
if(temp == None):
break
#输出节点信息
print(temp)
temp = temp.next
def main():
#进行测试
#先创建节点
hero1 = HeroNode(1,"宋江","及时雨")
hero2 = HeroNode(2,"卢俊义","玉麒麟")
hero3 = HeroNode(3,"吴用","智多星")
hero4 = HeroNode(4,"林冲","豹子头")
#创建要给链表
singleLinkedList = SingleLinkedList()
#加入节点
singleLinkedList.add(hero1)
singleLinkedList.add(hero2)
singleLinkedList.add(hero3)
singleLinkedList.add(hero4)
#显示节点
singleLinkedList.list()
if __name__ == '__main__':
main()
单向链表的Python实现
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。