版权声明:欢迎转载学习! https://blog.csdn.net/m0_38081836/article/details/84587912
标语:如果惧怕前面跌宕的山岩,生命永远只能是死水一潭
链表
定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
比较:
- 数组
- 链表
如何建立链表
- 头插法
将元素插入链表头的后面 - 尾插法
将元素顺序插入链表当中
如何逆序一个链表
-
非递归
需要三个辅助变量前驱(pre),当前节点(p),后继节点(next) -
递归
递归到最后返回的时候,p->next->next = p;实现单次逆序,然后回溯最终整个链表逆序成功 -
头插
基本操作
- 插入
- 删除
拓展
- 删除重复元素
- 建立hash表,时间复杂度
- 暴力循环查找重复元素 ,时间复杂度
- Farey序列相关知识
- 定义:选取一个正整数n。把所有分母不超过n的最简分数找出来,从小到大排序。这个分数序列就叫做Farey序列。
- 定理:在Farey序列中,对于任意两个相邻分数,先算出前者的分母乘以后者的分子,再算出前者的分子乘以后者的分母,则这两个乘积一定正好相差1!
- 双向链表的建立
对于每个节点增加前驱指针即可 - 循环链表的建立
最后一个元素指向第一个元素即可