ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:28.96KB ,
资源ID:21430382      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21430382.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(东南大学十套数据结构试题与答案docxWord格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

东南大学十套数据结构试题与答案docxWord格式.docx

1、S2 : p next=q ; q next=NULL;return L ; 回答下列 :(1) 明 句 S1 的功能;(2) 明 句 S2 的功能;(3) 表表示的 性表 ( a1,a 2, ,a n), 写出算法 行后的返回 所表示的 性表。2. void ABC(BTNode * BT)if BT ABC (BT-left);right);coutdatadata)item=BST-data;/ 查找成功return _;else if(itemdata)return Find(_,item);else return Find(_,item);/if六、编写算法(共 8 分)统计出单链表

2、 HL 中结点的值等于给定值 X 的结点数。int CountX(LNode* HL,ElemType x)数据结构试卷(二)三、 用 (36 分 )1 一 初始 关 字序列 (45 ,80, 48, 40, 22,78) , 分 出第 4 趟 排序和第 4 趟直接插入排序后的 果。2 指 量 p 指向双向 表中 点 A,指 量 q 指向被插入 点 B,要求 出在 点 A的后面插入 点 B的操作序列( 双向 表中 点的两个指 域分 llink 和 rlink )。3 一 有序的 关 字序列 (13 ,18, 24, 35, 47,50, 62, 83,90) , 找方法用二分 找,要求 算出

3、找关 字 62 的比 次数并 算出 找成功 的平均 找 度。4 一棵 T 中 的集合 (A , B) ,(A , C), (A ,D), (B, E) ,(C, F) , (C, G) ,要求用孩子兄弟表示法(二叉 表)表示出 的存 构并将 化成 的二叉 。5 有无向 G,要求 出用普里姆算法构造最小生成 所走 的 的集合。6 有一 初始 关 字 (45 , 80, 48,40,22,78) ,要求构造一棵二叉排序 并 出构造 程。四、算法 (16 分 )1 有一 初始 关 字序列( K1,K2, Kn),要求 一个算法能 在 O(n) 的 复 度将 性表划分成两部分, 其中左半部分的每个关

4、字均小于 Ki ,右半部分的每个关 字均大于等于 Ki 。2 有两个集合 A 和集合 B,要求 生成集合 C=A B 的算法,其中集合 A、B 和 C用 式存 构表示。数据结构试卷(三)二填空题1.下列算法实现在顺序散列表中查找值为 x 的关键字,请在下划线处填上正确的语句。 struct recordint key; int others;int hashsqsearch(struct record hashtable ,int k)int i,j; j=i=k % p;while (hashtablej.key!=k&hashtablej.flag!=0)j=(_) %m; if (i=j

5、)return(-1);if (_ ) return(j); else return(-1);2. 下列算法实现在二叉排序树上查找关键值 k,请在下划线处填上正确的语句。typedef struct nodeint key; struct node *lchild; struct node *rchild;bitree;bitree *bstsearch(bitree *t, int k)if (t=0 ) return(0);else while (t!=0)if (t-key=k)_; else if (t-keyk) t=t-lchild;else_;三、计算题 ( 每题 10 分,共

6、30 分 )1. 已知二叉树的前序遍历序列是 AEFBGCDHIKJ,中序遍历序列是 EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树。2已知待散列的线性表为( 36,15,40,63,22),散列用的一维地址空间为 0 . 6 ,假定选用的散列函数是 H( K) = K mod 7 ,若发生冲突采用线性探查法处理,试:( 1)计算出每一个元素的散列地址并在下图中填写出散列表:( 2)求出在查找每一个元素概率相等情况下的平均查找长度。3已知序列( 10,18, 4, 3, 6,12,1,9,18,8)请用快速排序写出每一趟排序的结果。四、算法设计题 ( 每题 15 分,共 30

7、分 )1 设计在单链表中删除值相同的多余结点的算法。2 设计一个求结点 x 在二叉树中的双亲结点算法。数据结构试卷(四)1 设一组初始记录关键字序列为 (20 , 18, 22, 16, 30, 19) ,则以 20 为中轴的一趟快速排序结果为 _ 。2 设一组初始记录关键字序列为 (20 ,18,22,16,30,19) ,则根据这些初始关键字序列建成的初始堆为 _ 。3 设某无向图 G 中有 n 个顶点,用邻接矩阵 A 作为该图的存储结构,则顶点 i 和顶点 j互为邻接点的条件是 _ 。4 设无向图对应的邻接矩阵为 A,则 A 中第 i 上非 0 元素的个数 _第 i 列上非 0元素的个数

8、(填等于,大于或小于) 。5 设前序遍历某二叉树的序列为 ABCD,中序遍历该二叉树的序列为 BADC,则后序遍历该二叉树的序列为 _ 。6 设散列函数 H(k)=k mod p ,解决冲突的方法为链地址法。要求在下列算法划线处填上正确的语句完成在散列表 hashtalbe 中查找关键字值等于 k 的结点,成功时返回指向关键字的指针,不成功时返回标志 0。typedef struct node int key; struct node *next; lklist;void createlkhash(lklist *hashtable )int i,k; lklist *s;for(i=0;ik

9、ey=ai;k=ai % p;next=hashtablek;_;1、画出广义表 LS=( ) , (e) , (a , (b , c , d ) 的头尾链表存储结构。2、下图所示的森林:(1)求树( a)的先根序列和后根序列;(2)求森林先序序列和中序序列;(3)将此森林转换为相应的二叉树;GBCHDEFIJK(a)(b)3、设散列表的地址围是 0.9 ,散列函数为 H( key ) = (key 2 +2) MOD 9,并采用链表处理冲突,请画出元素7、 4、5、 3、 6、 2、 8、9 依次插入散列表的存储结构。四、算法设计题 ( 每题 10 分,共30 分 )1 设单链表中有仅三类字

10、符的数据元素( 大写字母、 数字和其它字符 ) ,要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。2.设计在链式存储结构上交换二叉树中所有结点左右子树的算法。3.在链式存储结构上建立一棵二叉排序树。数据结构试卷(五)1.下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句。void bubble(int rn)for(i=1;=n-1; i+)for(exchange=0,j=0; jrj+1)temp=rj+1;_;rj=temp;exchange=1;if (exchange=0) return ;2.下面程序段的功能是实现二分查找算法,请在下划线处

11、填上正确的语句。struct recordint key; int bisearch(struct record r , int k)int low=0,mid,high=n-1; while(low=high)_;if(rmid.key=k) return(mid+1); else if(_) high=mid-1;elselow=mid+1;return(0);三、应用题 (32 分 )1. 设某棵二叉树的中序遍历序列为 DBEAC,前序遍历序列为 ABDEC,要求给出该二叉树的的后序遍历序列。2.设无向图 G(如右图所示) ,给出该图的最小生成树上边的集合并计算最小生成树各边上的权值之和

12、。3.设一组初始记录关键字序列为(15 , 17, 18, 22, 35, 51, 60) ,要求计算出成功查找时的平均查找长度。4. 设散列表的长度为 8,散列函数 H(k)=k mod7,初始记录关键字序列为 (25 ,31,8,27,13,68) ,要求分别计算出用线性探测法和链地址法作为解决冲突方法的平均查找长度。四、算法设计题 (28 分 )1 设计判断两个二叉树是否相同的算法。2 设计两个有序单链表的合并排序算法。数据结构试卷(六)四、算法设计题 (20 分 )设计在顺序有序表中实现二分查找的算法。设计判断二叉树是否为二叉排序树的算法。在链式存储结构上设计直接插入排序算法数据结构试

13、卷(七)三、填空题 (30 分 )1.下面程序段的功能是实现一趟快速排序,请在下划线处填上正确的语句。 struct record int key;datatype others;void quickpass(struct record r, int s, int t, int &i)int j=t; struct record x=rs; i=s; while(ij)while (ix.key) j=j-1; if (idata=k;lchild=t-rchild=0;else if (t-datak) bstinsert(t-lchild,k);else_;3 设指针变量 p 指向单链表中

14、结点 A,指针变量 s 指向被插入的结点 X,则在结点 A 的后面插入结点 X 需要执行的语句序列:next=p-next; _; 。4 设指针变量 head 指向双向链表中的头结点, 指针变量 p 指向双向链表中的第一个结点,则指针变量 p 和指针变量 head 之间的关系是 p=_和 head=_(设结点中的两个指针域分别为 llink 和 rlink )。5 设某棵二叉树的中序遍历序列为 ABCD,后序遍历序列为 BADC,则其前序遍历序列为_。6 完全二叉树中第 5 层上最少有 _ 个结点,最多有 _个结点。7 设有向图中不存在有向边 ,则其对应的邻接矩阵 A 中的数组元素 Aij 的

15、值等于 _。8 设一组初始记录关键字序列为 (49 ,38,65,97,76,13,27, 50) ,则第 4 趟直接选择排序结束后的结果为 _ 。9 设连通图 G中有 n 个顶点 e 条边,则对应的最小生成树上有 _条边。10 设有一组初始记录关键字序列为 (50 ,16,23,68,94,70,73) ,则将它们调整成初始堆只需把 16 与 _相互交换即可。1.设计一个在链式存储结构上统计二叉树中结点个数的算法。2.设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。数据结构试卷(九)五、算法设计题 (20 分 )1 设计计算二叉树中所有结点值之和的算法。2 设计将所有奇数移到所有偶数之前

16、的算法。3 设计判断单链表中元素是否是递增的算法。数据结构试卷(十)二、填空 (48 分,其中最后两小 各6 分 )1. 指 量 p 指向 表中 点 A, 除 点 A 的 句序列 :q=p- p-data=q-data ;next=_ ; feee(q) ;2.数据 构从 上划分 三种基本 型:_、 _和 _。3. 无向 G中有 n 个 点 e 条 , 用 接矩 作 的存 构 行深度 先或广度 先遍 的 复 度 _ ;用 接表作 的存 构 行深度 先或广度 先遍 的 复 度 _ 。4. 散列表的 度 8,散列函数 H(k)=k % 7,用 性探 法解决冲突, 根据一 初始关 字序列 (8 ,1

17、5, 16,22, 30, 32) 构造出的散列表的平均 找 度是 _。5. 一 初始关 字序列 (38 ,65,97,76,13,27,10) , 第 3 趟冒泡排序 束后的 果 _ 。6. 一 初始关 字序列 (38 ,65,97,76,13,27,10) , 第 3 趟 排序后的 果 _ 。7. 有向 G中的有向 的集合 E=,1,44,55,34,6,6, 5 , 的一个拓扑序列 _ 。8.下面程序段的功能是建立二叉 的算法, 在下划 填上正确的容。 typedef struct nodeint data;_;void createbitree(bitree *&bt)scanf( “

18、%c”,& ch);if(ch=#) _; bt=(bitree*)malloc(sizeof(bitree); bt-data=ch;_;createbitree(bt-rchild);9. 下面程序段的功能是利用从尾部插入的方法建立 表的算法, 在下划 填上正确的容。typedef struct node int data;void lklistcreate(_ *&head )for (i=1;=n;p=(lklist*)malloc(sizeof(lklist);scanf( “%d”,&(p -data);p-next=0;if(i=1)head=q=p;else q-next=p;

19、_;三、算法 (22 分 )1 在 式存 构上合并排序的算法。2 在二叉排序 上 找 点 X 的算法。3 关 字序列 (k 1, k2, kn-1 ) 是堆, 算法将关 字序列 (k 1, k2, kn-1 , x)整 堆。数据结构试卷(一)参考答案6 分,共 24 分)1. 性表 :( 78, 50, 40, 60, 34, 90)0 1 1 1 01 0 1 0 11 1 0 1 12. 接矩 : 0 1 1 1 0 接表如 11 所示:113.用克 斯卡 算法得到的最小生成 :(1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204.124 4

20、2 2 2 21283584四、 算法(每 7 分,共 14 分)1.( 1) 表的尾 点( 2)将第一个 点到 表的尾部,作 新的尾 点( 3)返回的 性表 ( a2,a 3, ,a n,a 1)2. 地后序遍 式存 的二叉 。五、法填空(每空 2 分,共 8 分)true BST-left BST-right六、 写算法( 8 分) int i=0; LNode* p=HL;/i 数器while(p!=NULL) if (P-data=x) i+; p=p-/while, 出循 i 中的 即 x 点个数return i;/CountX数据结构试卷(二)参考答案三、 用 1.(22 , 40

21、, 45, 48, 80, 78) , (40 , 45, 48, 80, 22, 78)2.q-llink=p; q-rlink=p-rlink;rlink-llink=q;rlink=q;3.2,ASL=91*1+2*2+3*4+4*2)=25/94. 的 式存 构略,二叉 略5.E=(1 , 3) , (1 , 2) , (3 , 5) , (5 , 6) , (6 , 4)6.略四、算法 1. 有一 初始 关 字序列( K1,K2, Kn),要求 一个算法能 在 O(n) 的 复 度将 性表划分成两部分, 其中左半部分的每个关 字均小于 Ki ,右半部分的每个关 字均大于等于 Ki 。void quickpass(int r, int s, int t)int i=s, j=t, x=rs;while(ix) j=j-1; rix) i=i+1;ri=x;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1