什么网站可以做线上小游戏,织梦 网站栏目管理 很慢,濮阳做公司网站,简单展示网站模板1、链表
链表是一种通过指针串联在一起的线性结构#xff0c;每一个节点由两部分组成#xff0c;一个是数据域一个是指针域#xff08;存放指向下一个节点的指针#xff09;#xff0c;最后一个节点的指针域指向null#xff08;空指针的意思#xff09;。
2、链表的类…1、链表
链表是一种通过指针串联在一起的线性结构每一个节点由两部分组成一个是数据域一个是指针域存放指向下一个节点的指针最后一个节点的指针域指向null空指针的意思。
2、链表的类型
1单链表 单链表中的指针域只能指向节点的下一个节点。
2双链表 双链表每一个节点有两个指针域一个指向下一个节点一个指向上一个节点。 因此双链表既可以向前查询也可以向后查询。 3循环链表 循环链表就是链表首尾相连可以用来解决约瑟夫环问题。
3、链表的存储方式
链表在内存中不是连续分布的通过指针域的指针链接内存中各个节点。 链表中的节点散乱分布在内存中的某地址上分配机制取决于操作系统的内存管理。 例如这个链表起始节点为2 终止节点为7 各个节点分布在内存的不同地址空间上通过指针串联在一起。
4、如何实现链表
1定义链表
class ListNode:def __init__(self, val, nextNone):self.val valself.next next2操作链表
删除节点
只要将C节点的next指针 指向E节点就可以了。 但是D节点依然存留在内存里只不过是没有在这个链表中而已。所以在C里最好再手动释放这个D节点释放这块内存。 其他语言例如Java、Python就有自己的内存回收机制就不用自己手动释放了。
添加节点
链表的增添和删除都是O(1)操作不会影响到其他节点。 但是要注意查找的时间复杂度是O(n)。
3数组与链表对比