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)

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

发布了15 篇原创文章 · 获赞 6 · 访问量 1442

猜你喜欢

转载自blog.csdn.net/qq_39783265/article/details/100938312