Python+图解:实现数据结构中单链表的头插法和尾插法
·
用Python实现数据结构的头插法和尾插法
1.链表结构
# -*- coding:utf-8 -*-
import random as rd
class Node():
def __init__(self, value, next=None):
self.value = value
self.next = next
2.头插法
#头插法
def creatlist_head(n):
L = Node(0) #首先申请一个头结点
link_list = [] #存储链表进行验证
link_list.append(L.value) #存入列表进行验证
for i in range(n):
data = rd.randint(0,100)
p =Node(data) #新结点
p.next = L #让头结点指向新结点
L = p #将头结点等于新节点,相当于中间变量
link_list.append(L.value)
print(link_list) #列表最后一个元素为头节点的元素
return L

3.尾插法
#尾插法
def creatlist_tail(n):
L = Node(0)
first_pointer = L
link_list = [] #存储链表进行验证
link_list.append(L.value)
for i in range(n):
data = rd.randint(0,100)
p = Node(data)
L.next = p #同理头插法
L = p #同理头插法
link_list.append(L.value)
print(link_list) #列表第一个元素为头节点的元素
return first_pointer
4.主函数
根据头插法和尾插法的元素及地址,对创建的链表进行验证,结果正确!
if __name__=='__main__':
head_pointer = creatlist_head(4)
print('Head verification:')
print(head_pointer.value)
print(head_pointer.next.value)
print(head_pointer.next.next.value)
print(head_pointer.next.next.next.value)
print(head_pointer.next.next.next.next.value)
print('\n')
head_pointer = creatlist_tail(4)
print('Head verification:')
print(head_pointer.value)
print(head_pointer.next.value)
print(head_pointer.next.next.value)
print(head_pointer.next.next.next.value)
print(head_pointer.next.next.next.next.value)
结果:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)