暑假第二周总结
作者:互联网
1.查找二叉排序树:
算法思想:
首先将待查关键字key与根节点关键字t进行比较:
a.如果bt->key = k, 则返回根节点指针。
b.如果bt->key < k,则进一步查找左子书。
c.如果bt->key > k,则进一步查找右子树。
使用递归算法实现。
2.jmu-ds-实现KMP:
使用kmp算法,分为三步:
(1) 写出getnext()函数来获得子字符串的next[]数组。
(2) 实现find()函数,通过getnext()函数所返回的next[]函数用kmp算 法找出子字符串的位置。
(3) 在主函数main()中获取输入的字符串数据,调用getnext()和find() 函数实现查找。
3.关键路径:
该题目涉及到拓扑排序的AOE网,AOV网是优先考虑顶点的思路,而我们也同样可以优先考虑边,这个就是AOE网的思路。
求关键路径的步骤:
a.输入顶点数和边数,已经各个弧的信息建立图
b.从源点v1出发,令ve[0]=0;按照拓扑序列往前求各个顶点的ve。如果 得到的拓扑序列个数小于网的顶点数n,说明我们建立的图有环,无 关键路径,直接结束程序
c.从终点vn出发,令vl[n-1]=ve[n-1],按逆拓扑序列,往后求其他顶 点vl值。
d.根据各个顶点的ve和vl求每个弧的e(i)和l(i),如果满足e(i) =l(i),说明是关键活动。
4.修建道路:
这个问题本质上就是求解权值最小的连通生成子图。该题目涉及最小生成树中的克鲁斯卡尔和普利姆算法,无向图最短路径的问题,要求没有直接连接的路的最短路径,需要先求出联通图中最短路径的长度,再减去已经存在的路径长度。所以先将原来已存在的路径的权值设为0,因为已经连接好的路是0,所以一定会经过已经连接好的路,此时只记录整个图的最短路径就是所需要铺设的路的长度。
5.先序和中序构造二叉树
在前序序列中找根结点,利用根结点将中序序列分成两部分(分别是左、右子树)。 然后找到左子树的根结点和右子树的根结点,然后再将中序序列已经分好的两部分进行分 割,一直递归下去,直到没有子树存在。
标签:总结,结点,暑假,路径,第二周,key,序列,顶点,ve 来源: https://www.cnblogs.com/csj-717/p/16461718.html