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)

结果:
在这里插入图片描述

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值