next)(stack.op++;stacks[stacktop=p->data;3for(p=head;pl=0;p=p->next)iE(p->data==stacks(stackLop!)stacktop=stacktop-1;elsereturn(0);return(1);2.没计链式存储结构上建立一楳二又树的算法。typedefchardatatype,typedefstructnode(datatypedata;structnode*lchild,*rchild;bitreevoidcreatebitree(bilree*&bt)charch;scanf("%c,&eif(ch==")(bt=0;return;Jbt=(bitree*)malloc(sizeof(bitree));bt->data=chreatebitree(bt->lchild);createbitree(bt->rchild);3.设计判断一棵二叉树是否是二义排序树的算法。intminnum=-32768,flag=1typedefstructnodefintkey;structnode"Child,*rchild;bitree;yoidinorder(bitree*bt)if(bt=0)[inorder(bt->child);if(minnum>bt->key)flag=0;minnum=bt->key,inorder(bt->rchild);h数据结构试卷(二选择题(24分)1.卜面关于线性表的叙述错误的是(D)(A)线性表采用顺序存储必须:用一片连续的存储空间(B)线性表采用链式存儐不必山用一片迕续的存储空闫(C)线性表用链式存便丁插入和删除操作的实现D)线性表釆用顺序存储便亍插入和删除操作的实现设哈大曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(A界个空指针域,9有叶万为的纸且2(A)2m-1(B)2mC)2m+1妤没顺序循环队列Q0:M1]的头指针和尾指针分别为P和R,头指针F总是指向队头元素的前一位置尾指针R总是指向队尾元的当前位置,则该循环队列中的元素个数为()(A)R-T(B)F-R(C)(R-F+M)%M()(F-R+M)%M√4!设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为A(A)BADC(B)BCDA(CCDAB(D)CBDA5.设某完全无向图有n个顶点,则该完全无向图中有(A条边(A)n(n-1)/2(B)n(n-1)(C)n26.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(O)。(C)11D)12设采图中有m个顶点,则该有向图对应的剑趣中有()个表头结点(B)n(D)2n-18.设一组初始记录关键字序列(5,2,6,3,8),以笫一个记录关键字5为基准进行一趟快速排序的结果为(C)。(A)2,3,5;8,6(B)3,2,5,8,6(C)3,2,5:6,8①D)2,3,6,5,8、填空题(24分)1.为了能有效地应用HASH查找技术,必须解决的两个问题是和下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句typedefstruct(ints[100];inttop:fsqsiack;voidpush(sqstack&stack,intx)if(stackop==m-1)printf(“overflow”)lies9tk二x;“a少+:3.中序遍历二叉排序树所得到的序列是有度序列(填有序或无序铁邀神厅的最间复弟度为1),平均时间复杀度为地D(3设某倮二叉树中度数为0的结点数为N,度数为1的结点数为N,则该二叉树中度数为2的结点数若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有山+41个空指针域6.设某无向各中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=7.设一缃初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为8.改某无向图G的邻接表为2->1>3又v--1->4->2·从点W开始的深度优先遍历序圳为1,24:切度优先遍历序列为省三、应用题(36分)].设一组初始记录关键字序为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果2.设指针变p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结京的两个指针域分别为11ink和rlink)a设一组有序的记录关键字序圳为(13,18,24,35,47,50,62,83,90),查找方法用二分查找要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度4设一棵树T中边的集合为联A,B),(A,C,(A,D),(B,E),(C,F,(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树5.设有无向图G(如右图所示),要求给出用普里姆算法构造最小生成树所走6过的边的集合。6.设有—组初始记录关键字为(45,80,48,4,2,178,要求构造一楔二(56叉排序树并给出构造过程。四、算法设计题(16分)1.设有一组初始记录关键字序列(K,K2,…,K),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K,右半部分的每个关键字均大于等于K2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示数据结构试卷(二)参考答案选择题ltd2.B5,A7,B8.C二、填空题构造一个好的HASH凼数,确定解决冲突的方法2.stacktop+t,stacks[stacktop]=3.有序4.0(n2),0(logan)5.N-1,2N+N6.d/27.(31,38,54,56,75,80,55,638.(1,3,4,2),(14)应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2.q>llink=p:g->rlink=p->rlink;p->rlink->link=q;p->rlink=q·3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储绪构略,二叉树略E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K1,右半部分的每个关键字均大于等于KYoidquickpass(intr[,ints,intt)inti=s,j=t,x=r[s]While(ix)jj;i(<){r[]==+1;}whie(i<&next)Ifor(q=hb;q!=0;q=q->next)if(q->data==p->data)breakif(ql=0)t=(lklist*)malloc(sizeof(klis);t->data=p-data;t->next=hc;hc=t;I数据结构试卷(三)选择题(30分)1.设某数据结构的二元组形式表示为A=(D,R)D={01,02,03,04,05,06,07,08,09},R={rr={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09},则数据结构A是(B)(A)线性结构B)树型结构(C)物理结构()图型结构2.卜面程序的时间复杂为(for(i=l,s=0(A)0(n)(C)0(n2)(D)0(n")/设指叶变量p指向单链表中结点A,若刷陰单链表中结点A则需要修改指针的操作序列为A(A)g=p->next:p->data=g->data:p->next=g->next:free(q)B)gp->next:g->data=p->data:p->next=g>nextfree(g):(C)q=p->next:p->next=q->next:free(q)(D)q=p->next:p->data=q->data:freeq)4.设有n个待排序的记录关键字,则在堆排序中需要(小个辅助记录单元(A)1(B)n(c)nlogen5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)10,15,14,18,20,36,40,21(B)10,15,14,18,20,40,36,2I(C)10,15,14,20,18,40,36,21(D)15,10,14,18,20,36,40,21y/设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为)(A)0(1)(B)0(10g2n)((D)O(n2)7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(D(B)e,nC)2D)n,28.设某强连通图中有n个顶点,则该强连通图中至少有(C)条边(A)n(n-1)(B)n+1D)n(+19.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列)方法可以达到此目的(A)快速排序(B)堆排序(C)归并排序D)插入排序0下列四种排序中()的空间复杂度最大。(A)插入排序(B)冒泡排序(C)堆排序(D)归并排序二、填空殖(48分,其中最后两小题各6分)数据的物理结构主要包括座不构利和环结堆两种情况设一棵完全:叉树中有500个结点,则该二叉树的深度为4:若用二叉链表作为该完全二叉树的存情结构,则共有55个空指针域3.设输入序列为1、2、3,则经过栈的作用后可以得到种不同的输出序列。4.设有向图G用邻接矩阵An]「m作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的友,第1列上所有元素之和等于顶点i的入区毕设哈夫曼树中共有n小结点,则该哈夫曼树中有日个度数为1的结点6.没有向图G中有n个顶点e条有向边,所有的顶人度散之和为d则形和d的关系为=e遍历二义排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)8.改奁找表中有100个元素,如果川二分法查找方法查找数据元素X,则最多需要比较次就可以断定数据元素K是否在查找表中9.·不论是顺序存储结构的栈还烂链式存储结构的栈:其入饯和出栈榤作的间复柒度均为的10.设有a个结点的完全一义树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的义结点编号为“,右孩子结点的编号为2计11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的·趟快速排序结果为!2.设有向图G中有向边的集合F=(<1,2>,<2,3>,<1,4>,<4,2>,<4,3},则该图的一种拓扑序列为13.下列算法实现顺序散列表中查找值为x的关键字,请在下划线处填上正确的诎句。structrecordfintkey:intothers;)inthashsqsearch(structrecordhashtable[l,intkinti,];j=j=kpwhile(hashtable].keyl=k&&hashtable].flag!=OHj=C)%o;if(i==j)return(-1B1ifDreturnG);elseretum(-1);14.下列算法实现在叉排序树上查找关键值k,请在下划线处填上正确的语句。typedefstructnodeintkey,structnode"Child;structnoderchild;bitree;bitree"bstsearch(bitree*t,intkif(l==o)return(O;elsewhile(t!=0)f(t->key==k)Y七;elseif(t->key>k)tt>lchd;lse七飞→YC三、算法设计题(22分设计在单链表中删除值相同的多余结点的算法2.设计-个求结点x在二叉树中的双亲结点算法。数据结构试卷(三)参考答案、选择题B4.A5.A6.B7.D8.C9.B10.D第3小题分析:首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B第9小题分析;9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为0(1ogn)。土、填空题1.顺序存储结构、链式存储结构2.9,5013.54.出度,入度6.7.中序8.79.0(1)10.豆/2,2i+111.(5,16,71,23,72,94,73)12.(1,4,3,2)13.j+l,hashtable[i].key==k14.return(t),t=t-rchild第8小題分析:二分査找的过程可以用一棵二叉树来描述,该二叉树称为二叉判定树。在有序表上进行分查找时的查找长度不超过二叉判定树的高度1+log2n三、算法设计题设计在单链表中删除值相同的多余结点的算法。typedefintdatatype;typedefstructnodedatatypedata;structnode*next;lklistvoiddelredundant(lklist*&head)Iklist*p,响q,*s;for(p=head;pl=0;p=p->next)tor(q=p>nexs=4;q!=0;if(q->data==p->data)[s->next=q->next;free(q);q=s->next;1else(s=q,q=q->next;y。2.设计个求结点x在二义树中的双亲结点算法。typedefstructnode(datatypedata;structnode*Child,*rchild;bitree;bitree*q[20];intr=0,f=0,flag=0voidpreorder(bitree*bt,charx)-IMDN开发者社群-imdn.cn"> next)(stack.op++;stacks[stacktop=p->data;3for(p=head;pl=0;p=p->next)iE(p->data==stacks(stackLop!)stacktop=stacktop-1;elsereturn(0);return(1);2.没计链式存储结构上建立一楳二又树的算法。typedefchardatatype,typedefstructnode(datatypedata;structnode*lchild,*rchild;bitreevoidcreatebitree(bilree*&bt)charch;scanf("%c,&eif(ch==")(bt=0;return;Jbt=(bitree*)malloc(sizeof(bitree));bt->data=chreatebitree(bt->lchild);createbitree(bt->rchild);3.设计判断一棵二叉树是否是二义排序树的算法。intminnum=-32768,flag=1typedefstructnodefintkey;structnode"Child,*rchild;bitree;yoidinorder(bitree*bt)if(bt=0)[inorder(bt->child);if(minnum>bt->key)flag=0;minnum=bt->key,inorder(bt->rchild);h数据结构试卷(二选择题(24分)1.卜面关于线性表的叙述错误的是(D)(A)线性表采用顺序存储必须:用一片连续的存储空间(B)线性表采用链式存儐不必山用一片迕续的存储空闫(C)线性表用链式存便丁插入和删除操作的实现D)线性表釆用顺序存储便亍插入和删除操作的实现设哈大曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(A界个空指针域,9有叶万为的纸且2(A)2m-1(B)2mC)2m+1妤没顺序循环队列Q0:M1]的头指针和尾指针分别为P和R,头指针F总是指向队头元素的前一位置尾指针R总是指向队尾元的当前位置,则该循环队列中的元素个数为()(A)R-T(B)F-R(C)(R-F+M)%M()(F-R+M)%M√4!设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为A(A)BADC(B)BCDA(CCDAB(D)CBDA5.设某完全无向图有n个顶点,则该完全无向图中有(A条边(A)n(n-1)/2(B)n(n-1)(C)n26.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(O)。(C)11D)12设采图中有m个顶点,则该有向图对应的剑趣中有()个表头结点(B)n(D)2n-18.设一组初始记录关键字序列(5,2,6,3,8),以笫一个记录关键字5为基准进行一趟快速排序的结果为(C)。(A)2,3,5;8,6(B)3,2,5,8,6(C)3,2,5:6,8①D)2,3,6,5,8、填空题(24分)1.为了能有效地应用HASH查找技术,必须解决的两个问题是和下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句typedefstruct(ints[100];inttop:fsqsiack;voidpush(sqstack&stack,intx)if(stackop==m-1)printf(“overflow”)lies9tk二x;“a少+:3.中序遍历二叉排序树所得到的序列是有度序列(填有序或无序铁邀神厅的最间复弟度为1),平均时间复杀度为地D(3设某倮二叉树中度数为0的结点数为N,度数为1的结点数为N,则该二叉树中度数为2的结点数若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有山+41个空指针域6.设某无向各中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=7.设一缃初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为8.改某无向图G的邻接表为2->1>3又v--1->4->2·从点W开始的深度优先遍历序圳为1,24:切度优先遍历序列为省三、应用题(36分)].设一组初始记录关键字序为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果2.设指针变p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结京的两个指针域分别为11ink和rlink)a设一组有序的记录关键字序圳为(13,18,24,35,47,50,62,83,90),查找方法用二分查找要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度4设一棵树T中边的集合为联A,B),(A,C,(A,D),(B,E),(C,F,(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树5.设有无向图G(如右图所示),要求给出用普里姆算法构造最小生成树所走6过的边的集合。6.设有—组初始记录关键字为(45,80,48,4,2,178,要求构造一楔二(56叉排序树并给出构造过程。四、算法设计题(16分)1.设有一组初始记录关键字序列(K,K2,…,K),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K,右半部分的每个关键字均大于等于K2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示数据结构试卷(二)参考答案选择题ltd2.B5,A7,B8.C二、填空题构造一个好的HASH凼数,确定解决冲突的方法2.stacktop+t,stacks[stacktop]=3.有序4.0(n2),0(logan)5.N-1,2N+N6.d/27.(31,38,54,56,75,80,55,638.(1,3,4,2),(14)应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2.q>llink=p:g->rlink=p->rlink;p->rlink->link=q;p->rlink=q·3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储绪构略,二叉树略E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K1,右半部分的每个关键字均大于等于KYoidquickpass(intr[,ints,intt)inti=s,j=t,x=r[s]While(ix)jj;i(<){r[]==+1;}whie(i<&next)Ifor(q=hb;q!=0;q=q->next)if(q->data==p->data)breakif(ql=0)t=(lklist*)malloc(sizeof(klis);t->data=p-data;t->next=hc;hc=t;I数据结构试卷(三)选择题(30分)1.设某数据结构的二元组形式表示为A=(D,R)D={01,02,03,04,05,06,07,08,09},R={rr={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09},则数据结构A是(B)(A)线性结构B)树型结构(C)物理结构()图型结构2.卜面程序的时间复杂为(for(i=l,s=0(A)0(n)(C)0(n2)(D)0(n")/设指叶变量p指向单链表中结点A,若刷陰单链表中结点A则需要修改指针的操作序列为A(A)g=p->next:p->data=g->data:p->next=g->next:free(q)B)gp->next:g->data=p->data:p->next=g>nextfree(g):(C)q=p->next:p->next=q->next:free(q)(D)q=p->next:p->data=q->data:freeq)4.设有n个待排序的记录关键字,则在堆排序中需要(小个辅助记录单元(A)1(B)n(c)nlogen5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)10,15,14,18,20,36,40,21(B)10,15,14,18,20,40,36,2I(C)10,15,14,20,18,40,36,21(D)15,10,14,18,20,36,40,21y/设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为)(A)0(1)(B)0(10g2n)((D)O(n2)7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(D(B)e,nC)2D)n,28.设某强连通图中有n个顶点,则该强连通图中至少有(C)条边(A)n(n-1)(B)n+1D)n(+19.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列)方法可以达到此目的(A)快速排序(B)堆排序(C)归并排序D)插入排序0下列四种排序中()的空间复杂度最大。(A)插入排序(B)冒泡排序(C)堆排序(D)归并排序二、填空殖(48分,其中最后两小题各6分)数据的物理结构主要包括座不构利和环结堆两种情况设一棵完全:叉树中有500个结点,则该二叉树的深度为4:若用二叉链表作为该完全二叉树的存情结构,则共有55个空指针域3.设输入序列为1、2、3,则经过栈的作用后可以得到种不同的输出序列。4.设有向图G用邻接矩阵An]「m作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的友,第1列上所有元素之和等于顶点i的入区毕设哈夫曼树中共有n小结点,则该哈夫曼树中有日个度数为1的结点6.没有向图G中有n个顶点e条有向边,所有的顶人度散之和为d则形和d的关系为=e遍历二义排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)8.改奁找表中有100个元素,如果川二分法查找方法查找数据元素X,则最多需要比较次就可以断定数据元素K是否在查找表中9.·不论是顺序存储结构的栈还烂链式存储结构的栈:其入饯和出栈榤作的间复柒度均为的10.设有a个结点的完全一义树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的义结点编号为“,右孩子结点的编号为2计11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的·趟快速排序结果为!2.设有向图G中有向边的集合F=(<1,2>,<2,3>,<1,4>,<4,2>,<4,3},则该图的一种拓扑序列为13.下列算法实现顺序散列表中查找值为x的关键字,请在下划线处填上正确的诎句。structrecordfintkey:intothers;)inthashsqsearch(structrecordhashtable[l,intkinti,];j=j=kpwhile(hashtable].keyl=k&&hashtable].flag!=OHj=C)%o;if(i==j)return(-1B1ifDreturnG);elseretum(-1);14.下列算法实现在叉排序树上查找关键值k,请在下划线处填上正确的语句。typedefstructnodeintkey,structnode"Child;structnoderchild;bitree;bitree"bstsearch(bitree*t,intkif(l==o)return(O;elsewhile(t!=0)f(t->key==k)Y七;elseif(t->key>k)tt>lchd;lse七飞→YC三、算法设计题(22分设计在单链表中删除值相同的多余结点的算法2.设计-个求结点x在二叉树中的双亲结点算法。数据结构试卷(三)参考答案、选择题B4.A5.A6.B7.D8.C9.B10.D第3小题分析:首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B第9小题分析;9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为0(1ogn)。土、填空题1.顺序存储结构、链式存储结构2.9,5013.54.出度,入度6.7.中序8.79.0(1)10.豆/2,2i+111.(5,16,71,23,72,94,73)12.(1,4,3,2)13.j+l,hashtable[i].key==k14.return(t),t=t-rchild第8小題分析:二分査找的过程可以用一棵二叉树来描述,该二叉树称为二叉判定树。在有序表上进行分查找时的查找长度不超过二叉判定树的高度1+log2n三、算法设计题设计在单链表中删除值相同的多余结点的算法。typedefintdatatype;typedefstructnodedatatypedata;structnode*next;lklistvoiddelredundant(lklist*&head)Iklist*p,响q,*s;for(p=head;pl=0;p=p->next)tor(q=p>nexs=4;q!=0;if(q->data==p->data)[s->next=q->next;free(q);q=s->next;1else(s=q,q=q->next;y。2.设计个求结点x在二义树中的双亲结点算法。typedefstructnode(datatypedata;structnode*Child,*rchild;bitree;bitree*q[20];intr=0,f=0,flag=0voidpreorder(bitree*bt,charx) - IMDN开发者社群-imdn.cn">
登录
首页 » Others » 上海大学数据结构试卷及答案

上海大学数据结构试卷及答案

于 2021-05-07 发布
0 308
下载积分: 1 下载次数: 1

代码说明:

很好的考试复习资料,内容很多,讲解很细致,而且涉及的也是重点数据结构试卷(一)参考答案选择题2.C3.DC 5. A6,C7.C8,B9.810.B填空题1.(F+!2.0(n),0(n1,4. s->rext=p-7nexl: y>neext=sn, 2e6.m=2了,CBA8.4,1610.n-1、应用题1.链式存储结构略,前序 ABDEL,中序 DBEAC,后序 DEBCA,2.哈夫曼树略,WPL=783.(i8,5,16,19,21,23),(5,16,21,19,18,23)h1012345674.线性探测:链地址法:h2->1人8∧1025322768h4->25->326865.深度:125364,广度:123456,最小生成树T的边集为E={(1,4),(1,3)(3,5,(,如,(.6)}四、算法设计题1.设计判断单链表中结点是否关于中心对称算法typedef struct (int s[100]; int top, y sqstack;int lklistsymmetry(iklist *head)sqstack stack; stack top=-1; Iklist"p;forip=head;pl=O; p=p->next)(stack. op++;stack s[stack top=p->data; 3for(p=head;pl=0;p=p->next)iE (p->data==stack s(stackLop!)stack top=stack top- 1; else return(0);return(1);2.没计链式存储结构上建立一楳二又树的算法。typedef char datatype,typedef struct node (datatype data; struct node *lchild, *rchild; bitreevoid createbitree( bilree*&bt)char ch; scanf("%c, &eif(ch==")(bt=0; return; Jbt=(bitree*)malloc(sizeof(bitree)); bt->data=chreatebitree(bt->lchild); createbitree(bt->rchild);3.设计判断一棵二叉树是否是二义排序树的算法。int minnum=-32768, flag=1typedef struct nodefint key; struct node"Child, *rchild; bitree;yoid inorder ( bitree *bt)if (bt =0)[inorder(bt->child ); if(minnum>bt->key)flag=0; minnum=bt->key, inorder (bt->rchild); h数据结构试卷(二选择题(24分)1.卜面关于线性表的叙述错误的是(D)(A)线性表采用顺序存储必须:用一片连续的存储空间(B)线性表采用链式存儐不必山用一片迕续的存储空闫(C)线性表用链式存便丁插入和删除操作的实现D)线性表釆用顺序存储便亍插入和删除操作的实现设哈大曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(A界个空指针域,9有叶万为的纸且2(A)2m-1(B)2mC)2m+1妤没顺序循环队列Q0:M1]的头指针和尾指针分别为P和R,头指针F总是指向队头元素的前一位置尾指针R总是指向队尾元的当前位置,则该循环队列中的元素个数为()(A)R-T(B)F-R(C)(R-F+M)%M()(F-R+M)%M√4!设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为A(A)BADC(B)BCDA(C CDAB(D) CBDA5.设某完全无向图有n个顶点,则该完全无向图中有(A条边(A)n(n-1)/2(B)n(n-1)(C)n26.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(O)。(C)11D)12设采图中有m个顶点,则该有向图对应的剑趣中有()个表头结点(B)n(D)2n-18.设一组初始记录关键字序列(5,2,6,3,8),以笫一个记录关键字5为基准进行一趟快速排序的结果为(C)。(A)2,3,5;8,6(B)3,2,5,8,6(C)3,2,5:6,8①D)2,3,6,5,8、填空题(24分)1.为了能有效地应用HASH查找技术,必须解决的两个问题是和下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句typedef struct (int s[ 100]; int top: f sqsiack;void push (sqstack &stack, int x)if( stackop==m-1) printf(“ overflow”)lies9tk二x;“a少+:3.中序遍历二叉排序树所得到的序列是有度序列(填有序或无序铁邀神厅的最间复弟度为1),平均时间复杀度为地D(3设某倮二叉树中度数为0的结点数为N,度数为1的结点数为N,则该二叉树中度数为2的结点数若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有山+41个空指针域6.设某无向各中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=7.设一缃初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为8.改某无向图G的邻接表为2->1>3又v--1->4->2·从点W开始的深度优先遍历序圳为1,24:切度优先遍历序列为省三、应用题(36分)].设一组初始记录关键字序为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果2.设指针变p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结京的两个指针域分别为11ink和 rlink)a设一组有序的记录关键字序圳为(13,18,24,35,47,50,62,83,90),查找方法用二分查找要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度4设一棵树T中边的集合为联A,B),(A,C,(A,D),(B,E),(C,F,(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树5.设有无向图G(如右图所示),要求给出用普里姆算法构造最小生成树所走6过的边的集合。6.设有—组初始记录关键字为(45,80,48,4,2,178,要求构造一楔二(56叉排序树并给出构造过程。四、算法设计题(16分)1.设有一组初始记录关键字序列(K,K2,…,K),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K,右半部分的每个关键字均大于等于K2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示数据结构试卷(二)参考答案选择题ltd 2. B5,A7,B8.C二、填空题构造一个好的HASH凼数,确定解决冲突的方法2. stack top+t, stack s[stack top ]=3.有序4.0(n2),0( logan)5.N-1,2N+N6.d/27.(31,38,54,56,75,80,55,638.(1,3,4,2),(14)应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2. q>llink=p: g->rlink=p->rlink; p->rlink->link=q; p->rlink=q·3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储绪构略,二叉树略E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K1,右半部分的每个关键字均大于等于KYoid quickpass(int r[, int s, int t)int i=s,j=t, x=r[s]While(inext: p->data=g->data: p->next=g->next: free(q)B)gp->next: g->data=p->data: p->next=g >next free(g):(C)q=p->next: p->next=q->next: free(q)(D)q=p->next: p->data=q->data: free q)4.设有n个待排序的记录关键字,则在堆排序中需要(小个辅助记录单元(A)1(B)n(c)nlogen5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)10,15,14,18,20,36,40,21(B)10,15,14,18,20,40,36,2I(C)10,15,14,20,18,40,36,21(D)15,10,14,18,20,36,40,21y/设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为)(A)0(1)(B)0(10g2n)((D)O(n2)7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(D(B)e,nC)2D)n,28.设某强连通图中有n个顶点,则该强连通图中至少有(C)条边(A)n(n-1)(B)n+1D)n(+19.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列)方法可以达到此目的(A)快速排序(B)堆排序(C)归并排序D)插入排序0下列四种排序中()的空间复杂度最大。(A)插入排序(B)冒泡排序(C)堆排序(D)归并排序二、填空殖(48分,其中最后两小题各6分)数据的物理结构主要包括座不构利和环结堆两种情况设一棵完全:叉树中有500个结点,则该二叉树的深度为4:若用二叉链表作为该完全二叉树的存情结构,则共有55个空指针域3.设输入序列为1、2、3,则经过栈的作用后可以得到种不同的输出序列。4.设有向图G用邻接矩阵An]「m作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的友,第1列上所有元素之和等于顶点i的入区毕设哈夫曼树中共有n小结点,则该哈夫曼树中有日个度数为1的结点6.没有向图G中有n个顶点e条有向边,所有的顶人度散之和为d则形和d的关系为=e遍历二义排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)8.改奁找表中有100个元素,如果川二分法查找方法查找数据元素X,则最多需要比较次就可以断定数据元素K是否在查找表中9.·不论是顺序存储结构的栈还烂链式存储结构的栈:其入饯和出栈榤作的间复柒度均为的10.设有a个结点的完全一义树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的义结点编号为“,右孩子结点的编号为2计11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的·趟快速排序结果为!2.设有向图G中有向边的集合F=(,,,,key==k)Y七; else if(t->key>k)tt>lchd;lse七飞→YC三、算法设计题(22分设计在单链表中删除值相同的多余结点的算法2.设计-个求结点x在二叉树中的双亲结点算法。数据结构试卷(三)参考答案、选择题B4.A5.A6.B7.D8.C9.B10. D第3小题分析:首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B第9小题分析;9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为0(1ogn)。土、填空题1.顺序存储结构、链式存储结构2.9,5013.54.出度,入度6.7.中序8.79.0(1)10.豆/2,2i+111.(5,16,71,23,72,94,73)12.(1,4,3,2)13. j+l, hashtable[i]. key==k14. return(t),t=t-rchild第8小題分析:二分査找的过程可以用一棵二叉树来描述,该二叉树称为二叉判定树。在有序表上进行分查找时的查找长度不超过二叉判定树的高度1+log2n三、算法设计题设计在单链表中删除值相同的多余结点的算法。typedef int datatype;typedef struct node datatype data; struct node *next; lklistvoid delredundant (lklist *&head)Iklist *p,响q,*s;for(p=head; pl=0; p=p->next)tor(q=p>nex s=4;q!=0;if (q->data==p->data)[s->next=q->next; free(q); q=s->next; 1else (s=q, q=q->next; y。2.设计个求结点x在二义树中的双亲结点算法。typedef struct node (datatype data; struct node *Child, *rchild; bitree;bitree*q[20]; int r=0, f=0, flag=0void preorder (bitree * bt, char x)

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 直线阵和圆阵数字波束形成MatlAB
    直线阵和圆阵数字波束形成MatlAB程序
    2020-12-02下载
    积分:1
  • 现代数字信号处理(课件+答案+习
    该资源是现代数字信号处理的相关课件及课后答案及部分习题
    2020-12-04下载
    积分:1
  • slickedit2019v24_keygen.rar
    【实例简介】windows下使用,直接patch 可执行文件。亲测可用,测试过mac os 版本的slickedit 24.00 ,可用。
    2021-12-11 00:41:19下载
    积分:1
  • 用OpenCV实现细胞计数
    在VC2008下配置OpenCV2.0,实现细胞数目的统计及面积。可具体罗列出图中每个细胞的序号及其对应的面积值。
    2021-05-06下载
    积分:1
  • ATMega8制作无感无刷(BLDC)电调全套资料(C源序固件SCH和PCB)
    ATMega8制作无感无刷(BLDC)电调全套资料(C源程序固件SCH和PCB)
    2020-12-11下载
    积分:1
  • 模糊综合评价方法的软件实现
    介绍了如何运用 matlab实现快速研制系统模糊综合评价方法。对软件的主要功能模块及技术 要点做了详细的叙述。该软件根据模糊变换原理,使用软件编程方法实现模糊数学计算,包括平均法、方根法及矩阵运算等。该评价方法软件能够快速准确科学地对快速研制系统的总体性能进行综合评价,减少人为评价和计算导致的误差和低效率,最终达到缩短产品研制周期的目的。矩阵“0.5,0.8,1.0,0.6,0.3;0.6,0.7,1.0,0.5,0.4”表示的是一个2行5列的矩阵。表达的实际矩return阵为:0.50.81.00.6O.3判断时间性评价矩阵的列数:(其中 i column、 int fac0.60.71.Q0.50.4tornumb和 int column为变量)f column- findsir(str ksx, "由于矩阵输入的数据较多,容易出现输入错误int factornumb= str2num (get(handles, edt factorn-的情况,本软件采用判断输入字符串是否符合矩阵umb, String));输入规则的方式来实现对数据输入正确性的检验。int column int subnumb(1, 1)*(int factornumb(1釆用的方法是判断输入矩阵的行数和列数是否正1)-1)确。在输入系统基础信息时,各子因素的个数就是if length(f column)N=int column对应子因素评价矩阵的行数,因素等级数即为子因errordlg(时间性评价矩阵的列数不正确.提示信息素评价矩阵的列数。取出它们的数据,经过判断便0m);可实现对单因素评价矩阵数据输入的判断。以时间eturn性子因素评价矩阵为例,主要的源码为:en判断时间性评价矩阵的行数:(其中frow、 int subnumb出于因素权重级采用归一化处理,为了保证其和 nt row为变量)符合归一化,程序对因素的权重级进行了归一化判f rew- firdstr(sir ks断,以保证输入权重数的总和为int subnumb-sur2num(get( handles.cdt_ suburb,2.5模糊綜合评价方法软件人机交互界面按照以上方法开发的快速研制系统模糊综合评int row -int subnurnb(1,1)-1价软件人机交互界面及运行结果如图2所示。errordlg(时间性评价矩阵的行数不正确.,提示信息p研投端络合谷方试饮各閃鬻子因震名称轟因紧评价短于因紫价量操助子因寡个教输入格式:323单因案评价矩阵輪入格式:06081.0.06030607100504权重级输入格式:950302采统序号了系综名称f各子因索个数322424因素等级效因案秤价矩薄棉入阚00330670005050001.00需性[060301000200802000204040量1C00非:000300靠性0802001708300济性(120300300集成0250750010.05050010托阵保存子因分轿溪厍屠次分析法求出的子除数值子因素状置银时间性权矩阵库1231/212731721的性权数0.日3a6间性我量级1054031X3矩阵质量权霾矩哗1212意权值(703质量权露鍰I0670331》2炮阵舒舒性权童趣降1212经洛性权数偏057:033经将性权露级1570331X陈柔性双重炮年12312:2213121111211乘性权豪值∮046:D26014"14柔惊收置级:04602601401可寥性权炮薄27可靠性妆067可缴性权露课531疼成批权置矩阵1234727123013:212711312集成蚀权数疸4:028:010趣成世权重摄04行216091×4露因素权分新用层次析滋求出的就农数值因搜素系统因素收墓短阵7131311722边1系炼因素值[0301201020194:0130‖/30联17010190130又敷」运用餐次分析沾计算权郾重绿确认」清空界画信息统关翹查调爭因掌级一增计算筐算总分系统序号866431蘩盒查时间性权重级值·F05403:0161系專号及名系摩号及专寡代号最权置067:03-·4经济性权辈破均值0570梁性积级-联426:014014f0570集成性权重一均值070230160的0.117190.1301i时间性,2质量,经济性,性、可靠性,图2模糊缐合评价方法软件人机交互界面]06《新技术新工艺》·兵器工业技术交流2010年第9期精盖生产方式和扁平化管理模式在企业新建工艺舰划中的泫用王继军,张静,王若,陈向东(安东方集团有限公司,陕西西安710043)摘要:通过学习研究精益生产方式和扁平化管理模式,分析企业生产方式和管理模式的现状及存在的闩题,提出了精益生产方式和扁平化管理在企业新建工艺规划中的应用方案,对企业工艺规划工作具有一定的参考价值。关键词:精益生产;扁平化管理;工艺规划中图分类号:TH162.0文献标志码:BThe Application of the Lean Manufacturing System and the Flat Structure Management Modein Enterprise New-built Technology PlanWANG ijun, ZhANG Jing, WANG Ruo ChEN Xiangdong(Xian Dong Fang Group Co, ltd, Xian 710043, China)Abstract: By studying the lean manufacturing system and the flat structure management modc, wc analyzcd thesituation and the existing problems of the enterprise manufacturing system and management mode, proposed the applicationscheme of lean mar ufacturing system and flat structure management mode in enterprise new-built process plan.Key words: Iean manufacturing, Flat structure management, Process plan精益生产方式和扁平化管理模式是当今全球装 John Krafoik给目本汽车工业的生产方式起的名备制造业先进的生产方式和管理模式,并且在各行称。在20世纪60和70年代,日本优秀的企业广泛业中得到了广泛推广和应用。借企业新建契机,进实施精益生产,以低成本、高品质的产品享誉世界。步探索精益生产方式和扁平化管理模式等先进理到80年代,欧美及台湾、韩国等国家的制造业也开念对企业工艺规划、生产线设计的要求,以提高零件始引入精益生产,把精益生产的思想应用于制造业品质减少浪费、提升管理水平、快速应对市场变化中。的能力为标,将其应用到工艺规划中,从而进一步精益生产方式的实质是一种生产管理技术,它提升企业的竞争力。能够大幅度减少闲置时间、作业切换时间、库存、低1精益生产方式和扁平化管理模式劣品质、不合格的供应商、产品开发设计周期,从而提升企业竞争力,降低生产成本。11精益生产方式精益生产方式的基本思想为“只在需要的时候精益生产方式起源于日本丰田汽车公司,精益按需要的量,生产所需的产品”。生产是美国麻省理工学院汽车项目组的研究者3结语参考文献运用 MATLAB编制的快速研制系统模糊综合1]李人厚,张平安精通 MATLAB[M].西安:西安交通大评价软件能够方便、快速、准确地对快速研制系统的学出版社,200总体性能进行综合评价,减少人为计算带来的误差2]张志涌,徐彦琴 MATLAR教程[M].北京:北京航空航和低效率。运用 MATLAB编制评价软件,缩短了天大学出版社,20软件研发周期。 MATLAB作为一种计算机编程语[3±先迎计算机辅助制避LM.北京:清华大学出版社,2003言,把数值计算和可视化环境集成到了一起,而且提供了大量的亟数,工具箱也越来越多。 MATLAB作者简介:于航(1980-),男,T程师,主要从事数字化制造技在有关数学的编程方面有着十分强大的功能和广泛术、快速研制系统的控制理论与方法研究的应用前景。收稿日期:2013年3月31日责任编辑吕菁《新技术新工艺》·兵器工业技术交流2010年第9期·107·
    2020-12-12下载
    积分:1
  • ip_iq检测法,滞环电流控制APF仿真
    能用,本人2010aMATLAB,谐波滤除后THD2.3%,三五七次谐波
    2020-12-10下载
    积分:1
  • 经典SVM算法多类分类matlab
    经典SVM算法多类分类 matlab程序
    2020-12-07下载
    积分:1
  • MCP3421电压采集
    MCP3421使用STM32实现电压采集,可以选择多种模式。
    2020-12-10下载
    积分:1
  • 电子商城源码
    在线购物已经成了一种时尚,它为人们提供了网络购物的方便性,使顾客可以足不出户就可以购买商品,因其具有方便、安全、友好的交互等特性,顾客群体也逐渐庞大,尤其是网络时代中成长的年轻人。现在流行的电子商务有B2B,B2C,C2C,G2C等类型。欣想电子商城采用的是B2B类型,它可以使顾客通过网络购物、浏览商品、查询订单、查看公告和销售排行等。通过对一些典型电子商城网站的考察、分析,并结合企业要求以及实际的市场调查,要求本系统具有以下功能:美观友好的操作界面,能保证系统的易用性。规范、完善的基础信息设置。商品分类详尽,可按不同类别查看商品信息。按商品大类及商品名称进行模糊查询。实现网上购物。
    2020-11-27下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载