链表:
为什么需要链表
顺序结构需要预先知道数据大小来申请连续的存储空间,而进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活
链表结构可以充分利用计算机空间,实现灵活的内存动态管理。
链表的定义
链表(linked list)是一种常见的基础数据结构,是一种线性表,但是不像是顺序表一样连续存储数据,而是在每个节点(数据存储单元)里面存放下一个节点的位置信息(即地址)
链表与顺序表的区别:
链表:缺点是失去了顺序表随机读取的优点,且增加了节点的指针域,对于内存的空间开销比较大,优点是对于存储空间会比较灵活,可以是离散存储的
链表的结构图形解析
表元素elem用来存放具体的数据
链接域next用来存放一个节点的位置(Python的标识)
变量P指向链表的头节点(首节点)位置,从p出发能找到表中的任意节点
节点实现
单链表实现
链表的方法实现
is_empty() 链表是否为空
length() 链表长度
travel()遍历整个链表
add(item)增加头部添加元素
append(item)尾部添加元素
insert(pos,item)指定位置插入元素
remove(item)删除元素
逻辑图如下search(item)查询元素是否存在
网友评论