一、单链表
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。
链式存储结构的线性表将采用一组任意的存储单元存放线性表中的数据元素。由于不需要按顺序存储,链表在插入、删除数据元素时比顺序存储要快,但是在查找一个节点时则要比顺序存储要慢,使用链式存储可以克服顺序线性表需要预先知道数据大小的缺点,链表结构可以充分利用内存空间,实现灵活的内存动态管理。但是链式存储失去了数组随机存取的特点,同时增加了节点的指针域,空间开销较大。
二、系统环境
系统:Windows 10
编译环境:python 3.*
编译器:pycharm 2019
三、单链表结构


四、python实现代码
'''
单链表的基本操作:
1、验证链表里面有没有值!
2、从头部插入数值!
3、从尾部插入数值!
4、按指定位置插入数值!
5、删除操作!
6、查找一个节点是否在链表中!
7、按下标查找节点处的数值!
8、给链表排序!
9、修改!
'''
# 创建节点
class Node(object):
def __init__(self, item):
self.element = item
self.next = None
# 创建单链表类
class SingleLinkList(object):
def __init__(self):
self.header = None
self.length = 0
# 1、判断是否为空
def is_empty(self):
if self.header == None:
return True
else:
return False
# 2、头部插入
def add(self, node):
if self.is_empty():
self.header = node
else:
node.next = self.header
self.header = node
# currentNode = self.header
self.length += 1
# 3、尾部插入
def append(self, node):
current_Node = self.header
if self.is_empty():
self.add(node)
else:
while (current_Node.next != None):
current_Node = current_Node.next
current_Node.next = node
self.length += 1
# 4、指定位置插入
def insert(self, node, index):
curren


6572

被折叠的 条评论
为什么被折叠?



