文章目录
参考学习视频
python03-04-01单向链表
一、单向链表介绍
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。像锁链一样,由一节节节点连在一起,组成一条数据链。
1.1 链表节点结构:
1.2 单向链表的结构
1.3 单链表和单向循环链表
- 单链表:每个节点只有一个属性.next,用于存放其后继节点;尾节点的后继为None;若链表为空,则头节点.head为None。
- 单向循环链表:每个节点只有一个属性.next,用于存放其后继节点;由于循环,故尾节点的后继为头节点;若链表为空,则头节点.head为None。
二、操作单链表
2.1 常用方法(自己定义的)
方法 | 作用 |
---|---|
is_empty() | 链表是否为空 |
length() | 链表长度 |
travel() | 遍历整个链表 |
add(item) | 链表头部添加元素 |
append(item) | 链表尾部添加元素 |
insert(pos, item) | 指定位置添加元素 |
remove(item) | 删除节点 |
search(item) | 查找节点是否存在 |
2.2 单向链表的实现
1、单节点类结构
class SingleNode(object):
"""单链表的结点"""
def __init__(self,item):
# item存放数据元素
self.item = item
# next是下一个节点的标识
self.next = None
2、单链表的增删改查
# #
class Node():
"""表节点结构实现 私有属性__next是指向下个节点的指针,__value为此节点的值"""
def __init__(self, value=None, next=None, ):
self._value = value
self._next = next
# 将方法封装
def getValue(self):
return self._value
def getNext(self):
return self._next
def setvalue(self, value):
self._value = value
def setNext(self, next):
self._next = next
class SingleLinkList(object):
"""操作单链表的方法"""
def __init__(self, Node=None):