Python 链表的基本操作

Python 链表的基本操作

一、链表简介
链表是一种在存储单元上非连续、非顺序的存储结构。数据元素的逻辑顺序是通过链表中的指针链接次序实现。链表是由一系列的结点组成,结点可以在运行时动态生成。每个结点包含两部分:数据域与指针域。数据域存储数据元素,指针域存储下一结点的指针。

二、单链表
单向链表也叫单链表,是链表中最简单的形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。

1.定义节点

// An LinkList node
class Node(object):
	def __init__(self,value):
		self.value = value
		self.next = None	

2.定义链表

// 定义单链表和基本操作
class LinkList(object):
	// 初始化链表
	def __init__(self):
		self.head = None
	//判断链表是否为空
	def isempty(self):
		return self.head == None
	//链表长度
	def GetLength(self):
		length = 0
		cur = self.head
		while cur != None:
			length += 1
			cur = cur.next
		return length
	// 遍历链表
	def PrintLinkList(self):
		cur = self.head
		while cur != None:
			print(cur.value)
			cur = cur.next
	// 从尾部添加节点
	def AddNodeFromtail(self, value):
		NewNode = Node(value)
		if self.isempty():
			self.head = NewNode
		else:
			cur = self.head
			while cur.next != None:
				cur = cur.next
			cur.next = NewNode
	//从头部添加节点
	def AddNodeFromhead(self,value):
		NewNode = Node(value)
		cur = self.head
		NewNode.next = cur
		self.head = NewNode
	//指定一个位置插入节点
	def Insert(self, value, index):
		NewNode = Node(value)
		if index <= 0:
			NewNode.next = self.head
		elif index > self.GetLength():
			self.AddNodeFromtail(value)
		else:
			cur = self.head
			for i in range(index-1):
				cur = cur.next
			NewNode.next = cur.next
			cur.next = NewNode
	//删除指定位置的节点:
	def DeleteNode(self,index):
		if isempty():
			print("this linklist is empty")
		if index < 0 or index >= self.GetLength():
			print("error: out of inedx")
		cur = self.head
		for i in range(index-1):
			cur = cur.next
		cur.next = cur.next.next
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值