数据结构6章习题

---------------------考试---------------------------学资学习网---------------------押题------------------------------《算法与数据结构》第1-6章课堂测验(双号)一、选择题1、已知一个栈的进栈序列是1,2,3,…,n,其输出序列是p,p,…,p,若p=n,则121np的值。(c)i(A)i(B)n-i(C)n-i+1(D)不确定2、设n个元素进栈序列是1,2,3,…,n,其输出序列是p,p,…,p,若p=3,则p2n112的值。(c)(A)一定是2(B)一定是1(C)不可能是1(D)以上都不对3、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(b)A.6B.11C.15D.不确定4、在下述结论中,正确的是(d)①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。A.①②③B.②③④C.②④D.①④5、一棵树高为K的完全二叉树至少有()个结点。(a)kk-1k-1kD.21B.2+1C.2A.2–二、简答题1简述下列术语:线性表,顺序表,链表。2线性表:最常用且最简单的一种数据结构。一个线性表是n个数据元素的有限序列。顺序表:是指用一组连续的存储单元一次存储线性表中的数据元素。物理结构和逻辑结3构都相邻。链表:逻辑结构相邻的数据元素物理结构不一定相邻。采用指针的形式连接起来。42何时选用顺序表,何时选用链表作为线性表的存储结构合适?各自的主要优缺点是什么?不需要经常大量的修改表或需要随机存取的情况下可以选用顺序表;相反需要经常大量的修改表,但不是频繁的随机存取的情况下可选用链式表。3链表所表示的元素是否有序?如有序,则有序性体现于何处?链表所表示的元素是否一定要在物理上是相邻的?有序表的有序性又如何理解?答:有序。有序性体现在通过指针数据元素有序的相连。物理上不一定要相邻。4设A和B是两个按元素值递增有序的单链表,写一算法将A和B归并为按按元素值递减有序的单链表C,试分析算法的时间复杂度。voidListInsert(SqListA,SqListB,SqListC){ElemType*p,*q,*s;P=&A;q=&B;s=&C;while(p.next!=NULL||q.next!=NULL){if(p.next.data<=q.next.data){if(s.next!=NULL)p.next=s.next;s.next=p.next;p++;}else{if(s.next!=NULL)q.next=s.next;s.next=q.next;q++;}}while(p.next!=NULL){p.next=s.next;s.next=p.next;}while(q.next!=NULL){q.next=s.next;s.next=q.next;}4、例:什么是队列的上溢现象和假溢出现象?解决它们有哪些方法?答:在队列的顺序存储结构中,设头指针为front,队尾指针rear,队的容量(存储空间的大小)为MaxSize。当有元素加入到队列时,若rear=MaxSize(初始时rear=0)则发生队列的上溢现象,该元素不能加入队列。特别要注意的是队列的假溢出现象:队列中还有剩余空间但元素却不能进入队列,造成这种现象的原因是由于队列的操作方法所致。解决队列上溢的方法有以下几种:1)建立一个足够大的存储空间,但这样做会造成①采用平移元素:当出现假溢出时可采用以下几种方法(2)空间的使用效率降低。.的方法:每当队列中加入一个元素时,队列中已有的元素向队头移动一个位置(当然要有空闲的空间可供移动);②每当删除一个队头元素时,则依次移动队中的元素,始终使front指针指向队列中的第一个位置;③采用环形队列方式:把队列看成一个首尾相接的环形队列,在环形队列上进行插入或删除运算时仍然遵循“先进先出”的原则。”5、例:对于顺序队列来说,如果知道队首元素的位置和队列中元素个数,则队尾元素所在位置显然是可以计算的。也就是说,可以用队列中元素个数代替队尾指针。编写出这种循环顺序队列的初始化、入队、出队和判空算法。解:当已知队首元素的位置front和队列中元素个数count后:队空的条件为:count==0队满的条件为:count==MaxSize计算队尾位置rear:rear=(front+count)%MaxSize对应的算法如下:typedefstruct{ElemTypedata[MaxSize];intfront;/*队首指针*/intcount;/*队列中元素个数*/}QuType;/*队列类型*/voidInitQu(QuType*&q)/*队列q初始化*/{q=(QuType*)malloc(sizeof(QuType));q->front=0;q->count=0;}intEnQu(QuType*&q,ElemTypex)/*进队*/{intrear;if(q->count==MaxSize)return0;/*队满上溢出*/else{r...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?