王道课后习题代码 目前的更新情况:已经全部更新,408真题或者少量较麻烦的题目未写
Note:由于目前本仓库有两位作者,mach4101和wulnut,因此目前有两种代码风格供大家查看,其中以mach4101作为后缀名的文件为mach4101所写。
视频讲解:(暂不更新)
- ✔ 第一题:删除顺序表中最小元素
- ✔ 第二题:顺序表逆置
- ✔ 第三题:删除所有值为x的元素
- ✔ 第四题:有序顺序表中删除s到t之间的元素
- ✔ 第五题:顺序表中删除s到t之间的元素
- ✔ 第六题:有序表去重
- ✔ 第七题:合并两个顺序表
- ✔ 第八题:将两个线性表的位置互换
- ✔ 第九题:递增有序的线性表查找x
- ✔ 第十题:统考题
- ✔ 第十一题:统考题
- ✔ 第十二题:统考题
- ✔ 第十三题:统考题
- ✔ 第十四题:统考题
- ✔ 第一题:删除不带头结点L的所有值为x的结点
- ✔ 第二题:带头结点的链表L中,删除所有值为x的结点
- ✔ 第三题:逆向输出单链表
- ✔ 第四题:带头结点的单链表L中删除最小值的结点
- ✔ 第五题:逆置单链表
- ✔ 第六题:带头结点的单链表L,设计算法使其递增有序
- ✔ 第七题:无序单链表中删除介于两个给定值之间的元素
- ✔ 第八题:寻找两个单链表的公共结点
- ✔ 第九题:按照递增次序输出单链表中各结点的数据元素并释放空间
- ✔ 第十题:按照奇偶拆分链表
- ✔ 第十一题:按照题目要求拆分链表
- ✔ 第十二题:有序单链表去重
- ✔ 第十三题:两个递增排列的线性表,归并为一个递减的链表
- ✔ 第十四题:单链表A和B中的公共结点组成链表C,不破坏原结点
- ✔ 第十五题:将单链表A和B的元素交集存放到A链表中
- ✔ 第十六题:判断单链表B是否是单链表A的连续子序列
- 后面的循环链表先暂时放一放,考的不多,之后有空就写,没空就不写了。
- ✔ 前两题不是编程题,skip
- ✔ 第三题:判断序列合法性
- ✔ 第四题:判断带头结点的链表是否中心对称
- ✔ 第五题:两栈共享空间
- ✔ 第一题:循环队列添加tag识别队空队满
- ✔ 第二题:利用栈来实现队列中的元素逆置
- ✔ 第三题:利用两个栈来模拟队列
- ✔ 第一题:括号匹配
- ✔ 第二题:栈道模拟
- ✔ 第三题:用栈实现递归函数的非递归
- 第四题有空再看
串我们不考,而且也没有什么代码题,考场上不可能让你手写KMP的,所以跳过
- ✔ 第五题:顺序存储结构的二叉树求编号i和j的最近公共祖先
- ✔ 第三题:后序遍历非递归
- ✔ 第四题:二叉树自下而上,自右到左的层次遍历算法
- ✔ 第五题:二叉链表结构的二叉树,非递归求高度
- ✔ 第六题:知道先序和中序,建立二叉树的二叉链表
- ✔ 第七题:判断一棵二叉树是否是完全二叉树
- ✔ 第八题:计算一颗给定二叉树的所有双分支结点个数
- ✔ 第九题:交换二叉树的左右子树
- ✔ 第十题:先序遍历的第k个结点的值
- ✔ 第十一题:对于每个元素值为x的结点,删除以它为根的子树并释放空间
- ✔ 第十二题:打印值为x的结点的所有祖先
- ✔ 第十三题:最近公共祖先
- ✔ 第十四题:二叉链表结构的二叉树算树的宽度
- ✔ 第十五题:一颗满二叉树,知道先序求后序
- ✔ 第十六题:将二叉树的叶子结点从左到右串成一个链表
- ✔ 第十七题:判断两个二叉树是否相似
- 第十八题线索二叉树考代码不多, skip
- ✔ 第四题:孩子兄弟表示法的森林叶子结点数
- ✔ 第五题:孩子兄弟表示法:递归求深度
- 第六题不会...
- ✔ 第四题:图的邻接表转换成邻接矩阵
- ✔ 邻接表的写法
- ✔ 邻接矩阵的写法
- ✔ 第二题:无向图G是否是一棵树
- ✔ 第三题:DFS的非递归形式
- ✔ 第四题:使用DFS和BFS判断有向图中是否有vi到vj的路径
- ✔ 第五题:输出从顶点vi到vj的所有路径
- ✔ 第五题:折半查找递归算法
- ✔ 第六题(顺序表):找到指定结点,与其后面的元素交换位置
- ✔ 第六题(链表)
- ✔ 第六题:判断给定的二叉树是否是二叉排序树
- ✔ 第七题:求出指定结点再二叉排序树中的层次
- ✔ 第八题:利用二叉树的遍历思想判断二叉树是否是高度平衡的二叉树
- ✔ 第九题:求出给定二叉排序树中的最小和最大关键字
- ✔ 第十题 :从大到小输出二叉排序树中值不小于k的关键字
- 第十一题,有些复杂,放了
- ✔ 第二题:双向冒泡排序
- ✔ 第三题:将顺序表的奇数元素移动到偶数前面
- ✔ 第四题:重写快排,枢纽随机
- ✔ 第五题:第k小元素
- ✔ 第六题:荷兰国旗问题
- ✔ 第四题:在单链表上进行选择排序
- ✔ 第五题:判断数据序列是否构成一个小根堆