数据结构精选考研试题

================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载==============

akm(m-1, akm(m,n-1)) 当m≠0,n≠0时 写出akm(2,1)时调用时变化过程与执行结果。 3. 对于正整数A、B,说明下面程序段定义了什么函数功能,要求重写程序段,使之完成原函数功能,且执行时间仅可能短。 Unsigned int

f(a,b) int a,b; {if (a*b==0) return (a+b) else return(f(b-(b/a)*a,a); (注:b/a相当整除) } 4. 写出在中序线索树BT中找结点X的后继结点的函数过程。 5.对以下关键字序列建立哈希表,哈希函数为H=关键字中第一个字母在字母表中的序号)MOD 7,用线性探测再散列法或链地址法之一处理冲突,要求构造一个装填因子为的哈希表,并求出等概率情况下查找成功与不成功的平均查找长度。 四、有二叉排序树采用二叉链表方式存放,树中结点值各不相同,欲得到一个大到小的结点值递减序列,简述处理方法思

路,用非递归形式写出算法。[10分] 五、 一棵树采用孩子-兄弟方式存放,

--------------------精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载---------------------

~ 21 ~

================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载==============

结点结构为 fch data nsib level 其中fch 表示指向第一个孩子,nisib表示指向下一个兄弟, level表示结点层次。 设根结点层次为1,其它以此类推,编写一算法,将树中所有结点层次值置入相应level域。[10分] 六、 以顺序存储结构表示串,设计算法,求串S中出现的第一个最长重复子串及其位置并分 析算法的时间复杂度. [10分] 七、 编写程序,要求完成: 建立一个带头结点的线性链表,用以存放输入的二进制数,链表中每个结点的data域存放一个二进制位。 在此链表上实现对二进制数加1的运算,并输出运算结果。[10分] [注]编写程序可选用Pascal或C语言,算法描述采用类语言(1997

年) 一、 简答下列问题:[15分] 1. 结构化程序设计目的、结构、方法 2. 面向对象程序设计语言的特征 3. 程序测试目的及程序可能存在的错误类型 4. 常用的参数传递方式的名称与作用 5. 为什么说数组和广

--------------------精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载---------------------

~ 22 ~

================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载==============

义表是线性表的推广 二、 写出要求结果[38分] 1. 给定权值{7,3,6,12,8,15},构造相应哈夫曼树,并计算其带权路径长度。 2. 有一组关键码49,38,65,97,76,13,27,43,采用堆排序方法,请写出每趟排 序结果。 3. 在后序线索树中,要找出结点P的前趋结点,请写出有关语句 Ltag Lc data Rtag Rc 4. 快速排序方法中,能否用队列代替栈,请简要说明理。 5. 设有关键字序列{32,53,78,12,25,62,43},哈希函数H(K)=K mod 7,用线 性探测再散列方法处理冲突,要求构造一个装填因子为的哈希表,并分别计算出在等概率情况下查找成功与查找不成功的平均查找长度。 6. 有一棵二叉排序树,树中结点各不相同,欲得到一个大到小的结点值递减序列, 你认为应当采

用什么方法,便可得到要求结果。 7. 给出右边有向图G的邻接表表示,按Dijkstra算法,给出V0到其余各顶点

--------------------精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载---------------------

~ 23 ~

================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载==============

的最 短路径。 100 60 30 4 10 10 20 5 50 8. 对于正整数a,b,使说明下面的过程定义了什么函数功能,并要求把它重写,使得 能完成原来功能,且执行时间尽可能短。 Unsigned int f(a,b) Unsigned int a,b; {if (a*b==0) return (a+b); else return(f(b-(b/a)*a,a)); } 三、 编写一程序: 输入m个1-n之间正整数,统计其中1-n中各个数值个数到C数组 将数组C[1:n]中所有奇数移到偶数之前,要求时间复杂度为O(n)。[8分] 四、 编写一程序,将一个循环链表表示的稀疏多项式分解成两个多项式,使这两个多项式各自仅含奇次项或偶数项,并要求利用原链表中的结点空间来构成这两个链表。[8分] 五、 棵树采用孩子-兄弟方式存放,结点结构为 fch data nsib level 其中fch 表示指向第一个孩子,nisib表示指向下一个兄弟, level表示结点层次。 设根结点层

~ 24 ~

--------------------精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载---------------------

================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载==============

次为1,其它以此类推,编写一算法,将树中所有结点层次值置入相应level域。[8分] 六、 一棵二叉树的内部路径长度等于从树根到每个结点路径长度之和,二叉树用二叉链表存放,请用递归算法,编写一个二叉树内部路径长度算法。[8分] 七、 一棵二叉树用二叉链表存放,且二叉树中结点各不相同。编写一算法,查找数据域为x的结点,并打印输出值为x结点的所有祖先。[8分] 八、 有N×N个元素构成的二维阵列,将其转换成一个四叉树表示,转换原则如下: 将阵列4等分为四个子区域,做为四叉树的四个分支,若该子区域所有元素值均为0或均为1,则对应的四叉树为叶子结点,填值为1或0;若该子区域值不一致,则对该区域可再划分,形成下一层的子树,递归重复,直到每个子区域对应相应叶结点或到达元素这一级为止。 要求:写出从二维阵列转换生成四叉树的算法基本思路,再给出从二维阵列转换生成四叉树的算法。

--------------------精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载---------------------

~ 25 ~

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4