数据结构之双向链表----Python

双向链表

双向链表是指节点有三部分,数据、前向指针和后向指针。简单的图示可以参考看图轻松理解数据结构与算法系列(双向链表)

作者:程序员老九
掘金:https://juejin.im/post/5d1365c7e51d4510a73280f6
来源:请关注我的掘金博客

 

#定义一个节点类
class Node:
	def __init__(self,dataval):
		self.dataval = dataval 
		self.rightval = None
		self.leftval = None

#定义双向循环链表
class Cri:
	#初始值
	def __init__(self):
		self.headval = None

	#添加数据
	def two_way_append(self,dataval):
		#数值转节点
		New_node = Node(dataval)
		#判断是否是初始值
		if self.headval==None:
			self.headval=New_node
		else:
			laste = self.headval
			while laste.rightval:
				laste = laste.rightval
			laste.rightval = New_node
			New_node.leftval = laste

	def show_right(self):
		printval = self.headval
		while printval:
			print(printval.dataval)
			printval = printval.rightval

	def show_left(self):
		printval = self.headval
		while printval:

			if printval.rightval == None:
				print(printval.dataval)
				break

			else:
				printval = printval.rightval
				print(str(printval.leftval.dataval))


li = Cri()
li.two_way_append('1')
li.two_way_append('2')
li.two_way_append('3')
li.two_way_append('4')


show = li.show_left()
# show_right = li.show_right()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值