链表定义:将元素存放在通过连接构造起来的一系列存储块中
一、单链表定义:每个节点两部分,即元素区elem和链接区next(指向下一个节点的地址)
-
第一个节点叫头结点
-
最后一个节点叫尾结点
-
尾结点的链接区指向空
# 创建一个节点类
class Node():
def __init__(self, elem, next=None):
self.elem = elem
self.next = next
# 创建一个单链表类
class SingleLinkList():
def __init__(self, node=None):
# 定义私有属性头结点
self.__head = node
def is_empty(self):
# 判断列表是否为空,只有头结点指向None则为空
return self.__head == None
def travel(self):
# 遍历整个链表
cur = self.__head
while cur != None:
print(cur.elem, end=' ')
cur = cur.next
print()
def length(self):
# 链表长度,需要遍历,只要找到尾节点
cur = self.__head # cur游标,用来移动遍历节点,表示当前节点
count = 0 # 负责计数
while cur != None:
count += 1
cur = cur.next
return count
def add(self, elem):
# 头部添加元素,头插法
first = self.__head
node = Node(elem, next=first)
self.__head = node
def append(self, elem):
# 尾部添加元素,尾插法
node = Node(elem)
cur = self.__head
if self.is_empty():
self.__head = node
else:
while cur.next != None:
cur = cur.next
cur.next = node
def insert(self, pos, elem):
# 指定位置插入元素
if pos self.length() - 1:
# 尾插法
self.append(elem)
else:
pre = self.__head
count = 0
while count
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?