做网站需要什么费用,二级域名分发平台,wordpress回复邮件提醒,宁津有培训做网站的链表
基本概念
链表是由一系列节点组成的元素集合。
每个节点包含两部分#xff1a;数据域 item 、指向下一个节点的指针 next
通过节点之间的相互链接#xff0c;形成一个链表
1. 链表的初始化
# 手动建立链表
# 链表的初始化
class Node(object):def __init__(self, …链表
基本概念
链表是由一系列节点组成的元素集合。
每个节点包含两部分数据域 item 、指向下一个节点的指针 next
通过节点之间的相互链接形成一个链表
1. 链表的初始化
# 手动建立链表
# 链表的初始化
class Node(object):def __init__(self, item):self.item itemself.next next# 手动添加链表中的数据
a Node(1)
b Node(2)
c Node(3)
d Node(4)
# 将节点之间链接起来
a.next b
b.next c
c.next d
# 可通过指针输出想要的数据
print(a) # 1
print(a.next) # 2
print(a.next.next) # 3
print(a.next.next.next) # 4
手动添加数据的方式我们不怎么用有专门的创建链表的方法 手动创建我们只需知道了解即可。
2.创建链表
(1).头插法
先把新的节点连到头节点head前面 再把头节点head挪到这个新的元素上 代码实现
def creat_linklist_head(li):head Node(li[0]) # 将列表中的第一个元素设为头节点for element in li[1:]: # 循环遍历链表node Node(element) # 将链表中的元素设置为一个节点node.next head # 将元素直接插到头节点的前面head node # 再将头节点直接挪到前面return head # 返回头节点
(2).尾插法 将尾指针指向下一个元素。 再把尾指针先后挪。 代码实现
def creat_linklist_tail(li):head Node(li[0]) # 将列表中的第一个元素设为头节点tail head # 当一开始只有一个节点的时候头节点和尾节点是同一个for element in li[1:]: # 循环遍历列表读取数据node Node(element) # 将列表中的元素设置为一个节点tail.next node # 将尾指针指向新添加的元素tail node # 尾指针向后移移到最后一个元素上return head # 返回头节点
3.遍历链表
当链表不为空时直接循环打印当前元素并不断指向下一个。
def print_linklist(lk):while lk:print(lk.item, end )lk lk.next# 集合尾插法进行测试
lk creat_linklist_tail([1,2,3,4])
print_linklist(lk)
运行后可以正常给出遍历结果但是我不理解他为什么会报错我跟着视频中教程敲得代码人家没报错为什么我的报错。等我研究研究。