数据结构练习1-09答案.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构练习1-09答案

09数据结构练习一参考 一、填空题: 1 直接前驱 2 直接后继 3 元素个数 4 一个指针域 5 前驱 6 后继 7 指针域 8 next(指针域) 9 头结点 10 相互间存在一种或多种特定关系 11 结构 12 集合 线性结构 树形结构 图形结构 13 逻辑结构 物理结构 操作(运算) 14 逻辑结构 15 物理结构 16 顺序印象和非顺序印象 17 顺序印象的特点是用元素在存储器中的相对位置表示数据元素之间的逻辑关系,非顺序印象的特点借助于指针表示数据元素之间的逻辑关系 18 顺序存储结构和链式存储结构 19 s-next=p-next;p-next=s; 20 q=p-next;p-next=q-next; free(q); 21 t-prior=p-prior; p-prior-next=t; t-next=p; p-prior=t; 22 q=p-next;q-next-prior=p; p-next=q-next; free(q); 23 往前挪 24 被删除元素后面一个元素 25 n/2 26 O(1) 27 O(n) 28 操作受限制 29 Q.front==(Q.rear+1)%MaxQueueSize 30 Q.front==Q.rear 31 最后一个 32 第一个 33 最后一个 34 O(n) 35 O(1) 36 O(n) 37 q-next 或p-next-next 38 零个字符的串 39 零 40 任意个连续字符组成的子序列 41 42 12000 二、选择题 1 A 2 C 3 C 4 B 5 A 6 D 7 C 8 C 9 A 10 A 11 A 12 B 13 A 14 B 15 D 16 D 17 B 18 B 19 B 20 D 21 A 22 C 23 D 24 C 25 D 26 A 27 A 28 C 29 D 30 D 31 C 32 C 33 A 34 B 35 A 36 D 37 B 38 B 39 D 40 C 41 D 42 B 43 B 44 C 45 D 46 B 47 A 48 D 49 D 50 B 51 D 52 B 53 B 54 B 55 C 56 B 57 C 58 D 59 B 60 三、判断题 1 否 2 否 3 否 4 是 5 否 6 否 7 是 8 否 9 否 10 否 11 否 12 否 13 否 14 是 15 是 16 否 17 否 18 是 19 是 20 否 21 否 22 是 23 否 24 否 25 是 26 否 27 是 28 是 29 是 30 是 五、算法设计 1.设有一个顺序表L,其元素为整形数据,设计一个算法将L中所有小于0的整数放在前半部分,大于等于0的整数放在后半部分。 void tiaozheng(SqList L) { i=1; j=L.Length; while(ij) { GetElem(L,i,lefte); if(lefte0) { i++; GetElem(L,i,lefte);} //找到左边第一个大于0的元素 GetElem(L,j,righte); if(righte0) { i--; GetElem(L,i,righte);} //找到右边第一个小于0的元素 e=L.elem[i-1]; L.elem[i-1]=L.elem[j-1]; L.elem[j-1]=e; } } 2.设计一个算法从顺序表中删除重复的元素,并使剩余元素间的相对次序保持不变。 //思路:设a[0]..a[j]是没有重复元素的顺序表,检查a[i]是否在这个顺序表中,不在就存入a[j+1] void shanchu(SqList A) { j=0; for(i=1; iL.length; i++) {k=0; while(k=jL.elem[i]!=L.elem[k]) k++; //查L.elem[0..j]中是否有L.elem[i] if(kj) L.elem[++j]=L.elem[i]; } L.length=j+1; //注意j是从0开始的 } 3.用顺序表A和B表示的两个线性表,元素的个数分别为m和n,若表中数据都是由小到大顺序排列的,且这(m+n)个数据中没有重复的。 (1)设计一个算法将此两个线性表合并成一个,仍是数据由小到大排列的线性表,存储到另一个顺序表C中。 (2)如果顺序表B的大小为(m+n)个单元,是否可不利用顺序表C而合并成的线性表存放于顺序表B中?试设计此算法。 (3)设顺序表A有m+n个元素,且前m个有序,后n个有序,设计一个算法,使得整个顺序表有序。 void Merge1(SqList A,SqList B,

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档