一:链表
常见的线性列表是数组和链表。链表可以分为单链表、双链表和循环链表。今天,我们主要进行与单链表相关的操作,包括链表的增删查改、链表的反转、链表的连接。
二:链表 & 数组
作为一种数据结构,链表与数组相比有哪些优缺点?
优点:
链表不占用连续内存,使用离散内存存储数据;该数组使用连续内存。
增删数据时,原始数据的移动很小;而数组需要大量移动原始数据(想象一下:如果在数组中间插入一个元素,那么数组的后半部分必须向后移动一个单位)
不足:
链表在查询和遍历数据时速度较慢,不像数组可以直接使用索引来访问某个数据。
三:链表的表示
节点类
我们知道链表是由节点连接的,所以我们先创建一个节点类
# Student类(节点类) 一个Student对象就是一个节点
class Student:
def __init__(self,SchNum,name,score):
self.SchNum = SchNum
self.name = name
self.score = score
self.next = None
链表类
链表需要的属性有:头节点、尾节点、链表大小
# 链表类
class Link:
# 构造函数
def __init__(self):
self.head = Student(None,None,None) # 头节点为空
self.tail = self.head
self.size = 1
创建链表后,我们还需要对其进行增删改查等操作。如果一个链表连这些功能都不能实现,那么它就不是很有用了。
四、增加元素
添加元素就是在链表的末尾添加一个新节点。要添加节点,我们需要以下步骤:
将链表尾节点的下一个节点指向新节点
将新节点作为尾节点
链表的长度+1
# 添加节点
def add(self,SchNum,name,score):
stu = Student(SchNum,name,score) # 创建新节点
self.tail.next = stu # 尾节点的下一个节点为新节点
self.tail = stu # 尾节点为新节点
self.size = self.size +
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python中的if else和if elif else有什么区别?10/17
- ♥ Elasticsearch与Python的对接实现01/13
- ♥ python字符串的表达式有哪些12/27
- ♥ Python find() 方法12/27
- ♥ 必看的Python函数讲解11/01
- ♥ python如何表示无穷大08/16
内容反馈