图解数据结构(使用图解数据结构(使用Python))——链表链表
前言前言
本人是应用统计专业的学生,由于实在是菜的抠
jio
,所以选择在这里记录自己的学习之路。一方面是希望通过这种形式来督促
自己学习;另一方面是可以保留自己的学习总结,方便日后复习。由于是第一次在
CSDN
平台发表文章,格式排版方面还不太
熟悉,加上能力有限,所以文章内容会比较简单。最后希望自己能够在学习中进步,提高能力来丰富文章内容!
1. 链表的概念及其优缺点链表的概念及其优缺点
概念:链表(Linked List)是由许多相同数据类型的数据按特定顺序排列而成的线性表,其特点是各个数据在计算机内存中的
位置是不连续且随机的。
优点:优点:
数据的插入和删除都比较方便,不需要移动大量的数据(列表在插入和删除时需要移动大量数据)
缺点:缺点:
在设计数据结构时比较复杂
无法像静态数据(如数组)一样随机读取数据,需要从头结点开始依次遍历才能找到需要的数据
2. 单向链表(单向链表(Single Linked List))
单向链表的结点一般由两个元素组成:数据域和指针域。其中数据域用来储存结点本身的信息,指针域用来指向后继结点的储
存位置。
数据域数据域 指针域(指向指针域(指向next域)域)
2.1 定义结点定义结点
#定义结点
class Node:
def __init__(self,x):
self.data = x
self.next = None
#注:结点的属性可以自己设置,最简单的仅为一个data域
2.2 构建单向链表构建单向链表
#构建单向链表
def CreateLinkedList():
head = Node(0)
ptr = head #保存头结点
i = 1
while i <= 3:
newnode = Node(i)
ptr.next = newnode
ptr = ptr.next
i += 1
return head
2.3 遍历单向链表遍历单向链表
#遍历单向链表
head = CreateLinkedList()
ptr = head
data = [] while ptr != None:
data.append(ptr.data)
ptr = ptr.next
2.4 单向链表插入结点单向链表插入结点
#插入头结点
newnode.next = head #head为原链表的头结点
head = newnode
#插入尾结点
ptr.next = newnode #ptr为原链表的最后一个结点
ptr = ptr.next
#插入中间结点
newnode.next = ptr.next #ptr为中间结点
ptr.next = newnode
2.5单向链表删除结点单向链表删除结点
评论0
最新资源