数据结构和算法 链表
一、单向循环链表 1、链表是一种数据结构,链表的基本组成单元是节点(Node)。节点(Node)包含了:节点数据(val/element)、后一个节点的引用(next)、前一个节点的引用(pre) 2、链表在内存中存储空间是不连续的,每一个节点都包含后一个节点的引用(next)和前一个节点的引用(pre),通过next和pre可以获取在不连续空间存储的节点 3、时间复杂度分析:一、添加和删除的操作:链表的时间复杂度则变成了O(1);二、遍历查找需要的数据::链表的时间复杂度则变成了O(n) 4、链表还是很多算法中有运用,哈希表就是基于链表来解决哈希冲突 5、链表实现:初始化(__init__)、元素的插入和删除(add、append、insert、remove)、链表的遍历(travel)、获取链表长度(length)、元素的查询(search)、链表的逆序、判断链表是否有环(链表是否有环:链表不存在一个结点的next指针是 null-hash表set.add(head)存储节点的引用和快慢指针) 6、while判断,head是否为none,适用于head=head.next;head.next是否为none,适于与head=head.next.next 7、以下python实现代码中 def insert(self, pos, item) 插入链表使用 数字索引 表示位置