算法大汇集:快来看呀?高分相送,明日结贴!

来源:百度文库 编辑:神马文学网 时间:2024/06/03 11:29:28
1、设线性表A=(a1,a2,...,an),B=(b1,b2,...,bn),试写一个按下列规则合并A,B为线性表C的算法,使得C=(a1,b1,...,an,bn,bm+1,...,bn)    当m<=n时
或者
C=(a1,b1,...,an,bn,an+1,...,am)        当m>n时
线性表A,B,C均以单链表作为存储结构,且C表利用A表和B表中的结点空间构成。
注意:单链表的长度值m和n均未显式存储。
2、建立一个带头结点的线性链表,用以存放输入的二进制数,链表中的每个结点的data域存放一个二进制位,并在此链表上实现对二进制数加1的运算。
3、将一个用循环链表表示的稀疏多项式分解成两个多项式,使得这两个多项式中各自仅含奇数项或偶数项,并要求利用原链表中的结点空间来构成这两个链表。
4、设多项式P(x)采用书中所述链接方法存储,写一个算法,对给定的X值,求P(x)的值。
5、假设表达式由单字母变量和双目运算算符构成,试写一算法,将一个通常书写形式且书写正确的表达式转换为逆波兰式。
六、              一棵二叉树的内部路径长度等于从树根到每个结点路径长度之和,二叉树用二叉链表存放,请用递归算法,编写一个二叉树内部路径长度算法。[8分]
七、              一棵二叉树用二叉链表存放,且二叉树中结点各不相同。编写一算法,查找数据域为x的结点,并打印输出值为x结点的所有祖先。[8分]
八、              有N×N个元素(N=2m)构成的二维阵列,将其转换成一个四叉树表示,转换原则如下:
将阵列4等分为四个子区域,做为四叉树的四个分支,若该子区域所有元素值均为0或均为1,则对应的四叉树为叶子结点,填值为1或0;若该子区域值不一致,则对该区域可再划分,形成下一层的子树,递归重复,直到每个子区域对应相应叶结点或到达元素这一级为止。
要求:写出从二维阵列转换生成四叉树的算法基本思路,再给出从二维阵列转换生成四叉树的算法。[7分]
给个算法