单链表
特点:结点中只包含一个指针域,且首尾不连接
图解:
名词:
名词 | 概念 |
---|---|
头指针 | 指向链表中第一个结点(或为头结点、或为首元结点)的指针 |
头结点 | 在链表的首元结点之前附设的一个结点;数据域内只放表长等信息,它不计入表长度。其作用是统一空表、和非空链表的形式 |
首元结点(开始结点) | 指链表中存储线性表第一个数据元素a1的结点 |
尾结点(结束结点) | 指链表中最后一个结点,尾指针指向NULL |
大家要明白,链表解决的是我们开发中的什么问题?
数组在插入和删除的时候,需要查找到当前元素,并把后续所有的元素全部向前或者向后移动,而链表在查找到以后,只需要用前一节点的指针指向新的节点或者删除元素的后一节点即可。
可以用大脑想一下,对于无序不相邻的元素,通过链表进行关联,并且可以进行快速的增删是多么方便的一件事!
Python中单链表的实现
#创建结点对象类
class Node(object):
#创建结点,初始化两个变量,默认均为None,创建新结点传value值即可,next存的是下一个结点对象
def __init__(self, value=None, next=None):
self.value, self.next = value, next
class SingleLink(object):
#初始化三个变量,
# final_node:记录最后一个结点
# root:记录头结点
# length:记录链表长度
def __init__(self)