数据结构试题及答案修2.doc
《数据结构试题及答案修2.doc》由会员分享,可在线阅读,更多相关《数据结构试题及答案修2.doc(9页珍藏版)》请在咨信网上搜索。
试卷一 一、 单选题(每题 2 分,共20分) 1. 对一个算法的评价,不包括如下()方面的内容。 A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度 2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. AOV网是一种( )。 A.有向图 B.无向图 C.无向无环图 D.有向无环图 7. 若需要利用形参直接访问实参时,应将形参变量说明为( )参数。 A.值 B.函数 C.指针 D.引用 8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( )。 A.行号 B.列号 C.元素值 D.非零元素个数 二、 填空题(每空1分,共28分) 1. 数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。 2. 队列的插入操作是在队列的___尾______进行,删除操作是在队列的____首______进行。 3. 当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是___top==0_____________。 4. 对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。 7. 二叉树是指度为2的____________________树。一棵结点数为N的二叉树,其所有结点的度的总和是_____________。 8. 对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______________。对一棵由算术表达式组成的二叉语法树进行后序遍历得到的结点序列是该算术表达式的__________________。 9. 对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为_____________个,其中_______________个用于指向孩子,_________________个指针是空闲的。 10. 若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。其余类推,则A[ i ]元素的左孩子元素为________,右孩子元素为_______________,双亲元素为____________。 11. 在线性表的散列存储中,处理冲突的常用方法有________________________和_____________________________两种。 三、 运算题(每题6分,共24分) 1. 已知一个6´5稀疏矩阵如下所示,试: (1) 写出它的三元组线性表; (2) 给出三元组线性表的顺序存储表示。 2. 设有一个输入数据的序列是 { 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输入各个数据而生成的二叉搜索树。 3. 对于图6所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,试写出: 从顶点①出发进行深度优先搜索所得到的深度优先生成树; 从顶点②出发进行广度优先搜索所得到的广度优先生成树; 图6 4. 已知一个图的顶点集V和边集E分别为: V={1,2,3,4,5,6,7}; E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}; 若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列。 四、 阅读算法(每题7分,共14分) 1. int Prime(int n) { int i=1; int x=(int) sqrt(n); while (++i<=x) if (n%i==0) break; if (i>x) return 1; else return 0; } (1) 指出该算法的功能; (2) 该算法的时间复杂度是多少? 2. 写出下述算法的功能: void AJ(adjlist GL, int i, int n) { Queue Q; InitQueue(Q); cout<<i<<' '; visited[i]=true; QInsert(Q,i); while(!QueueEmpty(Q)) { int k=QDelete(Q); edgenode* p=GL[k]; while(p!=NULL) {int j=p->adjvex; if(!visited[j]) { cout<<j<<' '; visited[j]=true; QInsert(Q,j); } p=p->next; }}} HL是单链表的头指针,试写出删除头结点的算法。 ElemType DeleFront(LNode * & HL) 参考答案 一、单选题(每题2分,共20分) 1.B 2.A 3.B 4.C 5.D 6.B 7.D 8.A 9.D 10.C 二、 填空题(每空1分,共26分) 1. 联系 图(或图结构) 2. 尾 首 3. top==0 4. O(1) O(n) 5. 128 44 108 6. 3 3 7. 6 5 5 1 5 1 3 2 -1 4 5 -2 5 1 5 6 3 7 图7 有序 n-1 8. 有序序列 后缀表达式(或逆波兰式) 9. 2n n-1 n+1 10. 2i+1 2i+2 (i-1)/2 11. 开放定址法 链接法 12. 快速 归并 三、 运算题(每题6分,共24分) 1. (1) ((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7)) (3分) 图8 (2) 三元组线性表的顺序存储表示如图7示。 2. 如图8所示。 3. DFS:‚ƒ„… BFS:‚ƒ„… 4. 拓朴排序为: 4 3 6 5 7 2 1 四、 阅读算法(每题7分,共14分) 1. (1) 判断n是否是素数(或质数) (2)O() 2. 功能为:从初始点vi出发广度优先搜索由邻接表GL所表示的图。 六、 编写算法(8分) ElemType DeleFront(LNode * & HL) {if (HL==NULL){ cerr<<"空表"<<endl; exit(1);} LNode* p=HL; HL=HL->next; ElemType temp=p->data; delete p; return temp; } 试卷十三 一、选择题(30分) 1.下列程序段的时间复杂度为( )。 for(i=0; i<m; i++) for(j=0; j<t; j++) c[i][j]=0; for(i=0; i<m; i++) for(j=0; j<t; j++) for(k=0; k<n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; (A) O(m*n*t) (B) O(m+n+t) (C) O(m+n*t) (D) O(m*t+n) 2.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( )个元素。 (A) n-i (B) n+l -i (C) n-1-i (D) i 3.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为( )。 (A) N1-1 (B) N2-1 (C) N2+N3 (D) N1+N3 4.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为( )。 (A) O(n) (B) O(nlog2n) (C) O(n2) (D) O(1og2n) 5.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为( )。 (A) p->right=s; s->left=p; p->right->left=s; s->right=p->right; (B) s->left=p;s->right=p->right;p->right=s; p->right->left=s; (C) p->right=s; p->right->left=s; s->left=p; s->right=p->right; (D) s->left=p;s->right=p->right;p->right->left=s; p->right=s; 7.设输入序列1、2、3、…、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是( )。 (A) n-i (B) n-1-i (C) n+l -i (D) 不能确定 8.设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择( )。 (A) 小于等于m的最大奇数 (B) 小于等于m的最大素数 (C) 小于等于m的最大偶数 (D) 小于等于m的最大合数 9.设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有( )个。 (A) 4 (B) 5 (C) 6 (D) 7 10.设完全无向图中有n个顶点,则该完全无向图中有( )条边。 (A) n(n-1)/2 (B) n(n-1) (C) n(n+1)/2 (D) (n-1)/2 14.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是( )。 (A) 1,2,3,4 (B) 2,3,4,1 (C) 1,4,2,3 (D) 1,2,4,3 二、填空题(30分) 1. 设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A的前面插入结点X时的操作序列为:1)s->next=___________;2) p->next=s;3) t=p->data;4) p->data=___________;5) s->data=t; 2.设某棵完全二叉树中有100个结点,则该二叉树中有______________个叶子结点。 3. 设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素的前一个位置,队尾指针R指向队尾元素的当前位置,则该循环队列中最多存储_______队列元素。 6. 设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________。 7. 设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列为____________________。 8. 设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度为________________。 10. 设无向图G(如右图所示),则其最小生成树上所有边的权值之和为_________________。 三、判断题(20分) 1. 有向图的邻接表和逆邻接表中表结点的个数不一定相等。( ) 2. 对链表进行插入和删除操作时不必移动链表中结点。( ) 3. 子串“ABC”在主串“AABCABCD”中的位置为2。( ) 4. 若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序列中的最后一个结点。( ) 6. 用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有关。( ) 7. 中序遍历一棵二叉排序树可以得到一个有序的序列。( ) 8. 入栈操作和入队列操作在链式存储结构上实现时不需要考虑栈溢出的情况。( ) 9. 顺序表查找指的是在顺序存储结构上进行查找。( ) 10.堆是完全二叉树,完全二叉树不一定是堆。( ) 五、算法设计题(20分) 1. 设计计算二叉树中所有结点值之和的算法。 2. 设计将所有奇数移到所有偶数之前的算法。 3. 设计判断单链表中元素是否是递增的算法。 参考答案 一、选择题 1.A 2.A 3.A 4.C 5.D 6.D 7.C 8.B 9.C 10.A 11.C 12.C 13.D 14.A 15.A 二、填空题 1. p->next,s->data 2. 50 3. m-1 4. 6,8 5. 快速,堆6. 19/7 7. CBDA 8. 6 9. (24,65,33,80,70,56,48) 10. 8 三、判断题 1.错 2.对 3.对 4.对 5.错 6.错 7.对 8.对 9.错 10.对 四、算法设计题 1.设计计算二叉树中所有结点值之和的算法。 void sum(bitree *bt,int &s) {if(bt!=0) {s=s+bt->data; sum(bt->lchild,s); sum(bt->rchild,s);} } 2. 设计将所有奇数移到所有偶数之前的算法。 void quickpass(int r[], int s, int t) {int i=s,j=t,x=r[s]; while(i<j) {while (i<j && r[j]%2==0) j=j-1; if (i<j) {r[i]=r[j];i=i+1;} while (i<j && r[i]%2==1) i=i+1; if (i<j) {r[j]=r[i];j=j-1;}} r[i]=x;} 3. 设计判断单链表中元素是否是递增的算法。 int isriselk(lklist *head) {if(head==0||head->next==0) return(1);else for(q=head,p=head->next; p!=0; q=p,p=p->next)if(q->data>p->data) return(0); return(1); } 试卷十四 一、选择题(24分) 1.下列程序段的时间复杂度为( )。 i=0,s=0; while (s<n) {s=s+i;i++;} (A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2) 2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。 (A) 单向链表 (B) 单向循环链表 (C) 双向链表 (D) 双向循环链表 3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。 (A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p; (C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q; 4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。 (A) 5,3,4,6,1,2 (B) 3,2,5,6,4,1 (C) 3,1,2,5,4,6 (D) 1,5,4,6,2,3 5.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为( )。 (A) 10 (B) 19 (C) 28 (D) 55 6.设一棵m叉树中有N1个度数为1的结点,N2个度数为2的结点,……,Nm个度数为m的结点,则该树中共有( )个叶子结点。 (A) (B) (C) (D) 8. 设一组权值集合W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )。 (A) 129 (B) 219 (C) 189 (D) 229 9. 设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要做( )次线性探测。 (A) n2 (B) n(n+1) (C) n(n+1)/2 (D) n(n-1)/2 10.设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉中共有( )个结点。 (A) 2n (B) n+l (C) 2n-1 (D) 2n+l 二、填空题(48分,其中最后两小题各6分) 1. 设需要对5个不同的记录关键字进行排序,则至少需要比较_____________次,至多需要比较_____________次。 5. 设一棵m叉树脂的结点数为n,用多重链表表示其存储结构,则该树中有_________个空指针域。 6. 设指针变量p指向单链表中结点A,则删除结点A的语句序列为: q=p->next;p->data=q->data;p->next=___________;feee(q); 7. 数据结构从逻辑上划分为三种基本类型:___________、__________和___________。 8. 设无向图G中有n个顶点e条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时的时间复杂度为_________;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_________。 .12. 设有向图G中的有向边的集合E={<1,2>,<2,3>,<1,4>,<4,5>,<5,3>,<4,6>,<6,5>},则该图的一个拓扑序列为_________________________。 13. 下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。 typedef struct node{int data;struct node *lchild;________________;}bitree; void createbitree(bitree *&bt) { scanf(“%c”,&ch); if(ch=='#') ___________;else { bt=(bitree*)malloc(sizeof(bitree)); bt->data=ch; ________;createbitree(bt->rchild);} } 14. 下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内容。 typedef struct node {int data; struct node *next;} lklist; void lklistcreate(_____________ *&head ) { for (i=1;i<=n;i++) { p=(lklist *)malloc(sizeof(lklist));scanf(“%d”,&(p->data));p->next=0; if(i==1)head=q=p;else {q->next=p;____________;}} } 参考答案 一、选择题 1.A 2.D 3.B 4.B 5.B 6.D 7.A 8.D 9.D 10.C 11.B 12.D 二、填空题 1. 4,10 2. O(nlog2n),O(n2) 3. n 4. 1,2 5. n(m-1)+1 6. q->next 7. 线性结构,树型结构,图型结构8. O(n2), O(n+e) 9. 8/3 10. (38,13,27,10,65,76,97) 11. (10,13,27,76,65,97,38) 12. 124653 13. struct node *rchild,bt=0,createbitree(bt->lchild) 14. lklist,q=p 【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】 精选范本,供参考!- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 试题 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文