其他分享
首页 > 其他分享> > 暑假第二周总结

暑假第二周总结

作者:互联网

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