1 / 101
文档名称:

《计算机软件技术基础》试题及答案.doc

格式:doc   大小:161KB   页数:101页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《计算机软件技术基础》试题及答案.doc

上传人:书犹药也 2019/9/22 文件大小:161 KB

下载得到文件列表

《计算机软件技术基础》试题及答案.doc

文档介绍

文档介绍:《计算机软件技术基础》试题及答案《计算机软件技术基础》。 。 ,在其第I个位置插入一个新元素的算法的时间复杂度为C。(1≤I≤n+1)(0) (1)(n) (n2)(a1,a2,…,an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为B,平均每删除一个元素需要移动的元素个数为A;若元素插在ai与ai+1之间(0≤I≤n-1)的概率为,则平均每插入一个元素所要移动的元素个数为C;A. . ,按它们在时的无穷大阶数,最大的是D。 !,其语句应为:D。->next=p+1;p->next=s;B.(*p).next=s;(*s).next=(*p).next;->next=p->next;p->next=s->next;->next=p->next;p->next=s;,其最少的比较次数是A。 --1 (ha和hb)为一个无头结点链表ha的过程,作为参数的两个链表都是按结点的data域由大到小链接的。合并后新链表的结点仍按此方式链接。请填写下述空框,使程序能正确运行。#defineNULL0typedefstructnode{ intdata; structnode*next;}node,linklisttype;bine(linklisttype*ha,linklisttype*hb){ linklisttype*h,*p; h=(linklisttype*)malloc(sizeof(linklisttype)); h->next=NULL; p=h; while(ha!=NULL&&hb!=NULL) if(ha->data>=hb->data){ /*较大的元素先插入*/ p->next=(1);p=(2);(3); } else{ p->next=(4);p=(5);(6);} if(ha==NULL)(7); if(hb==NULL)(8); ha=h->next; free(h);}参考答案: (1)ha (2)p->next (3)ha=ha->next (4)hb (5)p->next (6)hb=hb->next (7)p->next=hb (8)p->next=(a1,a2,…,an)与表B的一个顺序子表(bk,bk+1,…bk+n-1)完全相同(即a1=bk,a2=bk+1,…an=bk+n-1),则称表A包含在表B中。设ha,hb为带头结点的单链表,分别表示有序表A和B,下面的函数用于判别表A是否包含在表B中,若是,则返回true,否则返回false。(提示:用递归实现)#rue1#definefalse0#defineNULL0typedefstructnode{ intdata; structnode*next;}node,linklisttype;intinclusion(linklisttype*ha,linklisttype*hb){ linklisttype*pa,*pb; pa=ha->next; pb=hb->next; (1); while((2)) if(pa->data=pb->data) (3); else (4); (5);}参考答案:(1)if(pa==NULL)return(true)(2)pb!=NULL&&pa->data>=pb->data(3)return(inclusion(pa,pb))(4)pb=pb->next;(5)return(false),函数create_link_list(n)建立一个具有n个结点的循环链表;函数josephus(n,I,m)对由create_link_list(n)所建立的具有n个结点的循环链表按一定的次序逐个输出,并删除链表中的所有结点。参数n(n>0)指明循环链表的结点个数,参数I(1≤I≤n)指明起始结点,参数m(m>0是步长),指明从起始结点或前次被删除并输出的结点之后的第m个结点作为本次被输出并删除的结点。例如,对于下图所示的具有6个结点的循环链表,在调用joseph