19道综合算法练习题(纯手写可能有误明确思路即可)
1. 循环双向链表判断对称(注意奇数情况)
2. 排序二叉树输出逆向数列(非递归)
3.返回链表最小值 删除奇数节点
4.孩子兄弟表示法层序(空树处理)
5.删除单循环链表的前驱(注意赋值)
(无头节点,无首元素节点)
6. 判断正定二叉树(空节点处理别忘)
子树不存在度为1的节点
7.删除所有值为x的元素(注意传参)
注意函数参数。
8.仅尾指针链队列插入删除(别忘记赋值)
9.查找值为e的父节点(注意是对父节点访问)
10.任一元素的划分(注意最后枢轴的赋值)
11. 二叉排序树的构建
12.两个递增合成递减(反转注意指针备份)
13.孩子兄弟二叉树的后序问题
14.堆排序
应该没啥问题,没有调试过,但应付笔试绰绰有余了
搞清楚下沉的过程好吧,最难的部分应该是282-285行了。
15.一个链表分类三链表(尝试头插)
16.非递归DFS(基于邻接表)
17.BFS+两点最短距离+极大联通子图个数(邻接表)
18. 拓扑排序(基于邻接矩阵)
这里尝试使用邻接矩阵实现了。
注意刚开始最好的做法是初始化他们的入度,然后再遍历入度表Indegree