数据结构学习-线性表
来源:互联网 发布:js css display 编辑:程序博客网 时间:2024/06/05 19:28
目的
这一系列博客的目的在于复习巩固数据结构的基础知识,为考研面试笔试做准备,所以重在原理,代码实践不是重点。
参考书籍有严蔚敏老师的《数据结构(C语言版)》,《C/C++数据结构与算法速学速用大辞典》
线性表
顺序表
单链表
- 合并有序单链表
注意插入顺序。如果需要合并的有序链表是按照从小到大顺序排列,合并是按从大到小顺序合并。采用遍历有序链表,按照先插入小的,这样每次都只需要从头结点后面插入。
- 合并有序单链表
循环链表
- 判断条件
双向链表
- 插入删除
//将s结点插入p结点之前s = (DListNode*)malloc(sizeof(DListNode));if(!s) return -1;s->data = e;s->prior = p->prior;p->prior->next = s;s->next = p;p->prior = s;
//删除p结点p->prior->next = p->next;p->next->prior = p->prior;free(p);
- 约瑟夫问题
N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。- 模拟法
利用循环链表或者双向链表模拟一圈人;报数杀人;循环直到最后一个人。 - 递归法
将n个人编号为0~n-1。第一个出局的人编号是m%n -1;剩下的n-1个人组成了一个新的约瑟夫环,以编号为k=m%n的人开始
- 模拟法
假设第x个数是n个数的解,第x-m个数(n-1)时
F(n) = ( F(n-1) + m ) % n;//考虑到循环,取模
int F[n];//F[i]表示剩余i个人的情况F[1] = 0;//只剩一个数,这个数序号为0,也就是游戏顺利的那个数for(i=2; i<=n; i++) F[i] = ( F[i-1] + m ) % i;//剩余i个数的情况是对i取余cout<<"winner:"<<F[n]<<endl;
- C/C++ STL vector代码解析
未完待续
阅读全文
0 0
- 数据结构学习---线性表
- 数据结构学习-线性表
- 【数据结构学习】线性表
- 数据结构学习15:线性表
- 数据结构-线性表(学习笔记)
- 数据结构学习笔记-线性表
- 数据结构学习 线性表 链表
- 数据结构再学习---线性表
- 【数据结构学习】线性表List
- 【C++数据结构学习笔记---线性表】用单链表实现线性表
- 数据结构学习笔记(一)---------线性表线性存储
- 数据结构学习小结(1)-----线性结构-----线性表
- 严蔚敏数据结构学习笔记二.线性表
- 数据结构严版学习之线性表
- 数据结构学习笔记(2)线性表
- 数据结构_学习之_ 线性表
- 数据结构学习之路--线性表1
- 数据结构学习笔记 --- 线性表 (单链表)
- W3C school
- ReactNative学习之旅(2)—对第一个Rn项目的初步调试
- bzoj 2002 弹飞绵羊 分块
- 2017.7.09模拟赛总结(JZ Summer Camp)
- bzoj1905: Soldier 士兵控制的棋盘
- 数据结构学习-线性表
- 在纪中的第四天,2017-7-10 总结:
- poj 1079 Ratio 模拟
- 学习Linux-4.12内核网路协议栈(1.6)——协议栈的初始化(inet_init实现过程)
- 【面经笔记】持久化数据结构,序列化与反序列化时机
- 主要推荐系统算法总结及Youtube深度学习推荐算法实例概括
- 通过C语言实现猜数字游戏
- div盒子大小总结
- 重看android(二) android启动