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实现
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...