随笔分类 - 备考复旦大学之数据结构
中科院2000 三
摘要:由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,下面程序的作用是实现由已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序遍历序列,请写出程序所 缺的语句。 #define MAX 100 typedef struct Node{ char info; struct Node *llink, *rlink; }TNODE; char pred[MAX],inod
阅读全文
内排序
摘要:插入排序:适合于序列基本有序的情况 1:直接插入排序:o^2 就是从第一个开始,代排序的数字插入到已经排序好的数列中。 在之前的直接插入排序加一个优化,本来我们插入的时候我们是从尾向前或者从头向前,也就是相当于找一个适合他的位子,用二分查找,找到他的合适位子。查找的时间复杂度从n变到了nlogn,但
阅读全文
考研拓扑排序
摘要:在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。 先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。 一直做改操作,直到所有的节点都被分离出来。 如果最后不存在入度为0的节点,那就说明有环,不存在拓扑排序,也就是很多题目的无解的情况。
阅读全文
考研最路径dijkstra和floyd
摘要:先来讲个段子:为什么 Dijkstra 不能提出 floyd 算法?因为他的名字是 ijk 而不是 kij。 get不到点没有关系。我们今天的任务是看懂这个笑话。 dijkstra 的效率是n^2.处理的是一个点到所有点的最短路径。而floyd效率n^3,处理的是任意点的最短距离。dijkstra如
阅读全文
考研最小生成树
摘要:最小生成树 就是使n个点连通的所有边的权值最小的一个解 prim就是每次加进去一个点就更新路径。然后每次都加进去最短的路。 kruskal 就是我先不管 每次找这张图的最短边。如果这2条边已经联通了,就不加入,怎么判断联通呢——并查集 不会的可以看一下这个:https://blog.51cto.co
阅读全文
考研之图的遍历
摘要:我觉得我在学英语。arc 弧 node 点 graph 图 以下代码都是连接表访问 typedef struct arcnode//边节点 { int adjvex; struct arcnode *nextarc; int info; }arcnod//我们去想象一个图,边是不是连接着2个点。和可能需要长度。 adjvex-邻接点域也就是他指向一个节点,那...
阅读全文
kmp--考研写法
摘要:首先是模式串匹配: malloc : 数组=(类型*)malloc(数组大小*sizeof(类型)); free(数组); 例如: 然后 这个算法的复杂度是o(m^n); 我们需要一个更快的算法——kmp 我们来看一个例子:例子别的博主那里偷一下吧。 abcaabababaa和abab 但是我们发现
阅读全文
浙公网安备 33010602011771号