版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电大数据结构(本)形成性考核册(作业1-4)原题带答案 数据结构(本)课程作业作业1(本部分作业覆盖教材第1-2章的 )。a动态结构和静态结构 b紧凑结构和非紧凑结构c线性结构和非线性结构 dd )。a数据元素是数据的基本单位b数据项是数据中不可分割的最小可标识单位c数据可有若干个数据元素构成d数据项可由若干个数据元素构成3一个存储结点存储一个( b )。a数据项 b数据元素c数据结构 d数据类型4数据结构中,与所使用的计算机无关的是数据的( c )。a存储结构 b物理结构c逻辑结构 d物理和存储结构5下列的叙述中,不属于算法特性的是( d )。a有穷性 b输入性c可行性 d可读性6算法分析的
2、目的是( c )。a找出数据结构的合理性 b研究算法中的输入和输出的关系c分析算法的效率以求改进 d分析算法的易懂性和文档性7数据结构是一门研究计算机中( b )对象及其关系的科学。a数值运算 b非数值运算c集合 d非集合8算法的时间复杂度与( c )有关。a所使用的计算机 b与计算机的操作系统c与算法本身 d与数据结构9设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),则移动元素个数为( a )。an-i+1 bn-i cn-i-1 di10设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( b )。an-i+1 bn-i cn-i-1 di11在
3、一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( c )。ap=q->next bp->next=q cp->next=qnext dq->next=null12在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( d )。ap->next= s; snext= pnext bp->next=snext;cp=s->next ds->next=p->next; p->next=s;13非空的单向循环链表的尾结点满足(c )(设头指针为head,指针p指向尾结点)
4、。a.p->next= =null bp= =null1 cp->next= =head dp= = head14链表不具有的特点是( a )。a可随机访问任一元素 b插入删除不需要移动元素c不必事先估计存储空间 d所需空间与线性表长度成正比15带头结点的链表为空的判断条件是( b )(设头指针为head)。ahead = =nullbhead->next= =nullchead->next= =headdhead!=null16在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( c )。ap=q->
5、;nextbp->next=qcp->next=q->nextdq->next=null17在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为(c )。ar=f->next; br=r->next;cf=f->next; df=r->next;18在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为( b )。af->next=s; f=s; br->next=s;r=s;cs->next=r;r=s; ds->next=f;f=s;19.一个顺序表第一个元素的存储地址是90,每个元素的
6、长度为2,则第6个元素的地址是(b )。a98 b100 c102 d10620有关线性表的正确说法是( d )。a每个元素都有一个直接前驱和一个直接后继b线性表至少要求一个元素c表中的元素必须按由小到大或由大到下排序d除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继 二、填空题1在一个长度为n的顺序存储结构的线性表中,向第i(1in+1)个元素之前插入新元素时,需向后移动 n-i+1 个数据元素。2从长度为n的采用顺序存储结构的线性表中删除第i(1in+1)个元素 ,需向前移动 n-i 个元素。3数据结构按结点间的关系,可分为4种逻辑结构: 集合 、 线性结构 、
7、树形结构 、 图状结构 。4数据的逻辑结构在计算机中的表示称为 物理结构 或 存储结构 。5除了第1个和最后一个结点外,其余结点有且只有一个前驱结点和后继结点的数据结构为 线性结构 ,每个结点可有任意多个前驱和后继结点数的结构为 非线性结构 。6算法的5个重要特性是 有穷性 、 确定性 、 可形性 、 有零个或多个输入 、 有零个或多个输出 。7数据结构中的数据元素存在多对多的关系称为_图状结构_结构。8数据结构中的数据元素存在一对多的关系称为_树形结构_结构。9数据结构中的数据元素存在一对一的关系称为_线性结构_结构。10要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比
8、较的次数和算法的时间复杂度分别为_ n-1_和 _ o(n)_ 。11在一个单链表中p所指结点之后插入一个s所指结点时,应执行_ s->next=p->next _和p->next=s;的操作。 2 12设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->next= =_ head _,则p所指结点为尾结点。13在一个单向链表中,要删除p所指结点,已知q指向p所指结点的前驱结点。则可以用操作_。14设有一个头指针为head的单向链表,p指向表中某一个结点,且有p->next= =null,通过操作_ p->next=head _,就可使该单向
9、链表构造成单向循环链表。15每个结点只包含一个指针域的线性表叫 单链表 。16线性表具有 顺序存储 和 链式存储 两种存储结构。17数据的逻辑结构是从逻辑关系上描述数据,它与数据的关系 存储结构 无关,是独立于计算机的。18在双向循环链表的每个结点中包含 两个 指针域,其中next指向它的 直接后继 ,prior指向它的 直接前驱 ,而头结点的prior指向 尾结点 ,尾结点的next指向 头结点 。19单向循环链表是单向链表的一种扩充,当单向链表带有头结点时,把单向链表中尾结点的指针域由空指针改为 头结点的指针 ;当单向链表不带头结点时,则把单向链表中尾结点的指针域由空指针改为指向 指向第一
10、个结点的指针 。20线性链表的逻辑关系时通过每个结点指针域中的指针来表示的。其逻辑顺序和物理存储顺序不再一致,而是一种 链式 存储结构,又称为 链表 。 三、问答题1简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现?答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。数据在计算机中的存储表示称为数据的存储结构。可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。采用的存储结构不同
11、,对数据的操作在灵活性,算法复杂度等方面差别较大。 2解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,要求内存中存储单元的地址必须是连续的。优点:一般情况下,存储密度大,存储空间利用率高。缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。优点:插入和删除元素时很方便,使用灵活
12、。缺点:存储密度小,存储空间利用率低。 3什么情况下用顺序表比链表好?答:顺序表适于做查找这样的静态操作,链表适于做插入和删除这样的动态操作。如果线性表的变化长度变化不大,且其主要操作是查找,则采用顺序表;如果线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。 4头指针、头结点、第一个结点(或称首元结点)的区别是什么?头结点是在链表的开始结点之前附加的一个结点;第一个结点(或称首元结点)是链表中存储第一个数据元素的结点;头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。 3 5解释带头结点的单链表和不带头结点的单链表的区别。答:带头结点的单链表和不带头结点的单链表的区
13、别主要体现在其结构上和算法操作上。在结构上,带头结点的单链表,不管链表是否为空,均含有一个头结点,不带头结点的单链表不含头结点。在操作上,带头结点的单链表的初始化为申请一个头结点。无论插入或删除的位置是地第一个结点还是其他结点,算法步骤都相同。不带头结点的单链表,其算法步骤要分别考虑插入或删除的位置是第一个结点还是其他结点。因为两种情况的算法步骤不同。四、程序填空题1下列是用尾插法建立带头结点的且有n个结点的单向链表的算法,请在空格 ;return(head); 2下列是用头插法建立带头结点的且有n个结点的单向链表的算法,请在空格p->next=q->next ;(5) q->
14、;next=p ;4 return(head); 3下列是在具有头结点单向列表中删除第i个结点,请在空格 /*找到要删除结点的直接前驱,并使q指向它*/q=q->next;j+;if(q=null)return(0);(1) p=q->next ;(2) q->next=p->next ;free(p);return(1); 五、完成:实验1线性表根据实验要求(见教材p201-202)认真完成本实验,并提交实验报告。数据结构(本)课程作业2(本部分作业覆盖教材第3-5章的c )。a3,2,1 b2,1,3c3,1,2 d1,3,2 2一个队列的入队序列是1,2,3,4。
15、则队列的输出序列是( b )。a4,3,2,1 b1,2,3,4c1,4,3,2 d3,2,4,1 3向顺序栈中压入新元素时,应当( a )。a先移动栈顶指针,再存入元素 b先存入元素,再移动栈顶指针c先后次序无关紧要 d同时进行 4在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行( catop->next=p;5 。 ) bp->next=top->next; top->next=p;cp->next=top; top=p;dp->next=top->next; top=top->next; 5在一个栈顶指针为top的链栈中删
16、除一个结点时,用 x保存被删结点的值,则执行( b )。ax=top;top=top->next;bx=top->data;ctop=top->next; x=top->data;dx=top->data; top=top->next; 6一般情况下,将递归算法转换成等价的非递归算法应该设置( a )。a栈 b队列c堆栈或队列 d数组 7表达式a*(b+c)-d的后缀表达式是( b )。aabcd*+- babc+*d- cabc*+d- d-+*abcd 8判断一个顺序队列sq(最多元素为m0)为空的条件是( c )。asq->rear-sq->
17、;front= m0 bsq->rear-sq->front-1= = m0csq->front=sq->rear dsq->front=sq->rear+19判断一个循环队列q(最多元素为m0)为空的条件是( a )。aq->front=q->rear bq->front!=q->rearcq->front=(q->rear+1)% m0 dq->front!= (q->rear+1)%m0 10判断栈s满(元素个数最多n个)的条件是(c )。as->top=0 bs->top!=0cs->
18、top=n-1 ds->top!=n-1 11一个队列的入队顺序是a,b,c,d,则离队的顺序是( b )。aa,d,cb ba,b,c,d cd,c,b,a dc,b,d,a 12如果以链表作为栈的存储结构,则退栈操作时( c )。a必须判断栈是否满 b判断栈元素类型c必须判断栈是否空 d对栈不作任何判断 13在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个( b )结构。a堆栈 b队列 c数组 d先性表 14一个递归算法必须包括( b )。a递归部分 b终止条件和递归部分c
19、迭代部分 d终止条件和迭代部分 15从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的值,则执行( a )。ax=top->data; top=top->next; bx=top->data;ctop=top->next; x=top->data; dtop=top->next; x=data;6 16在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为(c )。ar=f->next; br=r->next; cf=f->next; df=r->next; 17在一个链队中,假设f和r分别为队头和队尾
20、指针,则插入s所指结点的运算为(b )。af->next=s; f=s; br->next=s;r=s;cs->next=r;r=s; ds->next=f;f=s; 18.以下陈述中正确的是( a )。a串是一种特殊的线性表 b串的长度必须大于零c串中元素只能是字母 d空串就是空白串 19设有两个串p和q,其中q是p的子串,q在p中首次出现的位置的算法称为( c )。a求子串 b连接c匹配 d求串长 20串是( d )。a不少于一个字母的序列 b任意个字母的序列c不少于一个字符的序列 d有限个字符的序列 21串的长度是指( b )。a串中所含不同字母的个数 b串中所含
21、字符的个数c串中所含不同字符的个数 d串中所含非空格字符的个数 22. 若串s=“english”,其子串的个数是( d )。a9 b16 c 36 d28 23串与普通的线性表相比较,它的特殊性体现在( c )。a顺序的存储结构 b链接的存储结构c数据元素是一个字符 d数据元素可以任意 24空串与空格串( b )。a相同 b不相同 c可能相同 d无法确定 25两个字符串相等的条件是( d)。a两串的长度相等b两串包含的字符相同c两串的长度相等,并且两串包含的字符相同d两串的长度相等,并且对应位置上的字符相同 26在实际应用中,要输入多个字符串,且长度无法预定。则应该采用(a )存储比较合适(
22、 )。a链式 b 顺序 c堆结构 d无法确定 27.一维数组a采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是( c )。a64 b287 c70 d90 28稀疏矩阵采用压缩存储的目的主要是(d )。a表达变得简单 b对矩阵元素的存取变得简单c去掉矩阵中的多余元素 d减少不必要的存储空间的开销 29一个非空广义表的表头( c )。a不可能是原子 b只能是子表c只能是原子 d可以是子表或原子 30常对数组进行的两种基本操作是( c )。a建立与删除 b索引与、和修改c查找和修改 d查找与索引 31. 设二维数组a56按行优先顺序存储在a )。a1140
23、b1145 c 1120 d1125 32设有一个20阶的对称矩阵a,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组b中(数组下标从1开始),则矩阵中元素a9,2在一维数组b中的下标是( d )。a41 b32 c18 d38 二、填空题1栈是限定在表的一端进行插入和删除操作的线性表,又称为后进先出2循环队列队头指针在队尾指针下一个3在队列的顺序存储结构中,当插入一个新的队列元素时,尾指针头指针 增1 。4循环队列的引入,目的是为了克服 5向顺序栈插入新元素分为三步:第一步进行栈是否满;第二步是修改 栈顶指针 ;第三步是把新元素赋给 栈顶对应的数组元素 。同样从顺序栈删除元素分为
24、三步:第一步进行 栈是否空 判断,判断条件是 s->top=-1 。第二步是把 栈顶元素 ;第三步 修改栈顶指针 。6假设以s和x分别表示入栈和出栈操作,则对输入序列a,b,c,d,e一系列栈操作ssxsxssxxx之后,得到的输出序列为 bceda 。7一个递归算法必须包括和递归部分。8判断一个循环队列lu(最多元素为m0)为空的条件是 lu->front=lu->rear 。9在将中缀表达式转换成后缀表达式和计算后缀表达式的算法中,都需要使用栈,对于前者,进入栈中的元素为表达式中的 运算符 ,而对于后者,进入栈的元素为 操作数,中缀表达式(a+b)/c-(f-d/c)所对
25、应的后缀表达式是。10向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行_ s->next=h _和h=s;操作。(结点的指针域为next)11从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行x=h->data;和_ h=h->next _。(结点的指针域为next)12在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为_ r->next=s _和r=s; (结点 8 的指针域为next)13在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为_ f=f->next _。 (结点的指针域为next)14串是
26、一种特殊的线性表,其特殊性表现在组成串的数据元素都是 字符 。15串的两种最基本的存储方式是顺序存储方式和链式存储方式。16空串的长度是空格字符的个数。17需要压缩存储的矩阵可分为特殊矩阵和矩阵两种。18设广义表l=(),(),则表头是,表尾是()l的长度是19广义表a(a,b,c),(d,e,f))的表尾为(d,e,f)。20两个串相等的充分必要条件是_串长度相等且对应位置的字符相等_。21设有n阶对称矩阵a,用数组s进行压缩存储,当ij时,a的数组元素aij相应于数组s的数组元素的下标为。(数组元素的下标从1开始)22对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_行下
27、标_、_列下标_和_非零元素值_三项信息。 三、问答题1简述栈和一般线性表的区别。答:栈是一种先进后出的线性表,栈的插入和删除操作都只能在栈顶进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。 2简述队列和一般线性表的区别。队列是一种先进先出的线性表,队列的插入只能在队尾进行,队列的删除只能在队头进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。 3链栈中为何不设头结点?答:因为链栈只在链头插入和删除结点,不可能在链表中间插入和删除结点,算法实现很简单,所以一般不设置头结点。 4利用一个栈,则:(1)如果输入序列由a,b,c组成,试给出全部可能的输出序列和不可能的输出序
28、列。(2)如果输入序列由a,b,c,d组成,试给出全部可能的输出序列和不可能的输出序列。答:(1)栈的操作特点是后进先出,因此输出序列有:a入,a出,b入,b出,c入c出,输出序列为abc。a入,a出,b入,c入,c出,b出,输出序列为acb。a入,b入,b出,a出,c入,c出,输出序列为bac。a入,b入,b出,c入,c出,a出,输出序列为bca。a入,b入,c入,c出,b出,a出,输出序列为cba。 由a,b,c组成的数据项,除上述五个不同的组合外,还有一个c,a,b组合。但不可能先把c出栈,再把a出栈,(a不在栈顶位置),最后把b出栈,所以序列cab不可能由输入序列a,b,c 通过栈得到
29、。(2)按照上述方法,可能的输出序列有:abcd,abdc,acbd,acdb,adcb,bacd,badc,bcad,bcda,bdca,cbad,cbda,cdba,dcba。不可能的输出序列有:dabc,adbc,dacb,dbac,bdac,dbca,dcab,cdab,cadb,cabd9 5用s表示入栈操作,x表示出栈操作,若元素入栈顺序为1234,为了得到1342出栈顺序,相应的s和x操作串是什么?答:应是sxssxsxx。各操作结果如下:s 1入栈x 1出栈 输出序列:1s 2入栈s 3入栈x 3出栈 输出序列:13s 4入栈x 4出栈 输出序列:134x 2出栈 输出序列:1
30、342 6有5个元素,其入栈次序为:a、b、c、d、e,在各种可能的出栈次序中,以元素c、d最先的次序有哪几个? 答:从题中可知,要使c第一个且d第二个出栈,应是a入栈,b入栈,c入栈,c出栈,d入栈。之后可以有以下几种情况:(1)b出栈,a出栈,e入栈,e出栈,输出序列为:cdbae。(2)gt;0)个元素a1 ,a2ai an的有限序列,其中ai或者是原子或者是一个广义表。所以,广义表是一种递归数据结构,而线性表没有这种特性,线性表可以看成广义表的特殊情况,当ai都是原子时,广义表退化成线性表。 四、程序填空题 1在下面空格处填写适当的语句,以使下面的链式队列取出元素的算法完整。int w
31、rite(linkqueue *q)queuenode *p;if (q->front=q->rear) /*队空*/printf(“underflow”);exit(0);while (q->front->next != null)p=q->front->next;(1) q->front->next=p->next; printf(“%4d”,p->data);10 五、综合题1设栈s和队列q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过s,一个元素出栈后即进队列q,若6个元素出队的序列是e2,e4,e3,e6,e
32、5,e1,则栈s的容量至少应该是多少?答:出队序列是e2,e4,e3,e6,e5,e1的过程: e1入栈(栈底到栈顶元素是e1) e2入栈(栈底到栈顶元素是e1,e2) e2出栈(栈底到栈顶元素是e1) e3入栈(栈底到栈顶元素是e1,e3) e4入栈(栈底到栈顶元素是e1,e3,e4) e4出栈(栈底到栈顶元素是e1,e3) e3出栈(栈底到栈顶元素是e1) e5入栈(栈底到栈顶元素是e1,e5) e6入栈(栈底到栈顶元素是e1,e5,e6) e6出栈(栈底到栈顶元素是e1,e5) e5出栈(栈底到栈顶元素是e1) e1出栈(栈底到栈顶元素是空)栈中最多时有3个元素,所以栈s的容量至少是3。
33、2假设用循环单链表实现循环队列,该队列只使用一个尾指针rear,其相应的存储结构和基本算法如下;(1)初始化队列initqueue(q):建立一个新的空队列q。(2)入队列enqueue(q,x):将元素x插入到队列q中。(3)出队列delqueue(q):从队列q中退出一个元素。(4)取队首元素gethead(q):返回当前队首元素。(5)判断队列是否为空:emptyqueue(q)。(6)显示队列中元素:dispqueue(q)。算法设计如下:/*只有一个指针rear的链式队的基本操作*/#include <stdio.h>typedef char elemtype;struc
34、t node /*定义链队列结点*/elemtype data;struct node *next;typedef struct queue /*定义链队列数据类型*/struct node *rear; linkqueue; void initqueue(linkqueue *q)/*初始化队列*/q=(struct queue *)malloc(sizeof(struct queue);11 q->rear=null; void enqueue(linkqueue *q,elemtype x) /*入队算法*/ struct node *s,*p;s=(struct node *)m
35、alloc(sizeof(struct node);s->data=x;if (q->rear=null) /*原为空队时*/ q->rear=s;s->next=s;else /*原队不为空时*/ p=q->rear->next; /*p指向第一个结点*/q->rear->next=s; /*将s链接到队尾*/q->rear=s; /*q->rear指向队尾*/s->next=p; void delqueue(linkqueue *q) /*出队算法*/struct node *t;if (q->rear=null)pr
36、intf("队列为空!n");return(0);else if (q->rear->next=q->rear) /*只有一个结点时*/ t=q->rear;q->rear=null;else /*有多个结点时*/t=q->rear->next; /*t指向第一个结点*/ q->rear->next=t->next; /*引成循环链*/ free(t); elemtype gethead(linkqueue *q) /*取队首元素算法*/ if (q->rear=null)printf("队列为空!
37、n");elsereturn(q->rear->next->data); int emptyqueue(linkqueue *q) /*判断队列是否为空算法*/ 12 if (q->rear=null) return(1); /*为空,则返回true*/else return(0); /*不为空,则返回flase*/void dispqueue(linkqueue *q) /*显示队列中元素算法*/struct node *p=q->rear->next;printf("队列元素:");while (p!=q->rear)
38、printf("%c ",p->data);p=p->next;printf("%cn",p->data); 六、完成:实验2栈、队列、递归程序设计根据实验要求(见教材p203)认真完成本实验,并提交实验报告。数据结构(本)课程作业作业3(本部分作业覆盖教材第6-7章的b )。a15 b16 c17 d472二叉树第k层上最多有( b )个结点。k-1 a2k b2k-1 c2-1 d2k3二叉树的深度为k,则二叉树最多有( d )个结点。a2k b2k-1k-1kc2 d2-14. 设某一二叉树先序遍历为abdec,中序遍历为dbea
39、c,则该二叉树后序遍历的顺序是( c )。aabdec bdebac cdebca dabedc5将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为( b )。a33 b34 c35 d366如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为( a )。a哈夫曼树 b平衡二叉树c二叉树 d完全二叉树7下列有关二叉树的说法正确的是( a )。a二叉树中度为0的结点的个数等于度为2的结点的个数加1b二叉树中结点个数必大于0c完全二叉树中,任何一个结点的度,或者为0或者为2d二叉树的度是
40、28在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( c )。a4 b5 c6 d79在一棵度具有5层的满二叉树中结点总数为( a )。13 a31 b32 c33 d1610. 利用n个值作为叶结点的权生成的哈夫曼树中共包含有( d )个结点。a. n b. n+1 c. 2*n d. 2*n-111. 利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子的最长带权路径长度为( a )。a. 18 b. 16 c. 12 d. 3012在一棵树中,( c )没有前驱结点。a分支结点 b叶结点 c树根结点 d空结点 13在一棵二叉
41、树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为( c )。a2i b2i-1 d2i+1 c2i+214设一棵哈夫曼树共有n个叶结点,则该树有( b )个非叶结点。an bn-1 cn+1 d2n15设一棵有n个叶结点的二叉树,除叶结点外每个结点度数都为2,则该树共有( b )个结点。a2n b2n-1 c2n+1 d2n+216在一个图g中,所有顶点的度数之和等于所有边数之和的( c )倍。a1/2 b1 c2 d417在一个有像图中,所有顶点的入度之和等于所有顶点的出度之和的( b )倍。a邻接矩阵表示法 b邻接表表示法c逆邻接表表示法 d邻接表和逆邻接表18在图的存储结构表示中,
42、表示形式唯一的是( c )。an bn+1 cn-1 dn/219一个具有n个顶点的无向完全图包含( a )条边。an(n-1) bn(n+1) c n(n-1)/2 d n(n+1)/220对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为( b )。an bn2 cn-1 d(n-1)221对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为(an be c2n d2e22在有向图的邻接表中,每个顶点邻接表链接着该顶点所有( b )邻接点。a入边 b 出边c入边和出边 d 不是入边也不是出边23邻接表是图的一种( b )。a顺序存储结构 b链式存储
43、结构c索引存储结构 d散列存储结构24如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是( ba完全图 b连通图 c有回路 d一棵树25下列有关图遍历的说法不正确的是( c )。a连通图的深度优先搜索是一个递归过程b图的广度优先搜索中邻接点的寻找具有“先进先出”的特征c非连通图不能用深度优先搜索法d图的遍历要求每一顶点仅被访问一次26无向图的邻接矩阵是一个( a )。a对称矩阵 b 零矩阵 c上三角矩阵 d对角矩阵27图的深度优先遍历算法类似于二叉树的( a )遍历。a先序 b 中序 c后序 d层次 14 )。 d )。 28已知下图所示的一个图,若从顶点v1出发,按
44、深度优先搜索法进行遍历,则可能得到的一种顶点序列为( c )。av1v2v4v8v3v5v6v7 bv1v2v4v5v8v3v6v7cv1v2v4v8v5v3v6v7 dv1v3v6v7v2v4v5v8 二、填空题 1结点的度是指结点所拥有的子树树木或后继结点数2树的度是指。3度大于0的结点称作分支结点或。4度等于0的结点称作或。5在一棵树中,每个结点的子树的根称为该结点的孩子结点简称为孩子。6从根结点到该结点所经分支上的所有结点称为该结点的。7树的深度或高度是指树中结点的最大层数8具有n个结点的完全二叉树的深度是log2n+1 。9先序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则
45、进行如下操作,访问二叉树的先序遍历二叉树的 左子树 ,先序遍历二叉树的右子树10中序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,中序遍历二叉树的 左子树 ;访问而叉树的 根结点 ,中序遍历二叉树的右子树。11后序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,后序遍历二叉树的左子树 ;后序遍历二叉树的 右子树 ,访问而叉树的根结点12将树中结点赋上一个有着某种意义的实数,称此实数为该结点的13树的带权路径长度为树中所有叶子结点的。14哈夫曼树又称为最优二叉树n个带权叶子结点构成的所有二叉树中带权路径长度最小的二叉树 。15若以4,5,6,7,8作
46、为叶子结点的权值构造哈夫曼树,则其带权路径长度是16具有m个叶子结点的哈夫曼树共有17在图中,任何两个数据元素之间都可能存在关系,因此图的数据元素之间是一种多对多的关系。18图的遍历是从图的某一顶点出发,按照一定的搜索方法对图中各做15 访问的过程。19图的深度优先搜索遍历类似于树的20图的广度优先搜索类似于树的按层次21具有n个顶点的有向图的邻接矩阵,其元素个数为n222图常用的两种存储结构是和。23在有n个顶点的有向图中,每个顶点的度最大可达。24在一个带权图中,两顶点之间的最段路径最多经过25为了实现图的深度优先搜索遍历,其非递归的算法中需要使用的一个辅助数据结构为栈 三、综合题1 答:二叉树的定义是递归的,所以,一棵二叉树可看作由根结点,左子树和右子树这三个基本部分组成,即依次遍历整个二叉树,又左子树或者右子树又可看作一棵二叉树并继续分为根结点、左子树和右子树三个部分.,这样划分一直进行到树叶结点。(1)先序为“根左右”,先序序列为:fdbacegihl(2)中序为“左根右”,中序序列为:abcdefghij(3)后序为“左右根”,后序序列为:acbedhjigf 2已知某二叉树的先序遍历结果是:a,b,d,g,c,e,h,l,i,k,m,f和j,它的中序遍历结果是:g,d,b,a,l,h,e,k,i,m,c,f和j,请画出这棵二叉树,并写出该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赔偿工资的协议书模板
- 手术间物品规范放置品管圈
- 妇产科妇科炎症护理要点
- 保险知识科普
- 口腔科牙周病防治指南培训教程
- 2026山西农业大学招聘博士研究生116人备考题库及参考答案详解(基础题)
- 2026内蒙古鄂尔多斯景泰艺术中学(普高)招聘教师3人备考题库附答案详解(研优卷)
- 2026山西经济管理干部学院(山西经贸职业学院)招聘博士研究生5人备考题库及参考答案详解(新)
- 2026安徽师范大学教育集团面向校内外招聘中小学正副校长备考题库含答案详解(轻巧夺冠)
- 2026上半年四川成都职业技术学院(考核)招聘高层次人才8人备考题库完整参考答案详解
- 2025辽宁葫芦岛市总工会招聘工会社会工作者5人笔试考试参考试题及答案解析
- 经济学的思维方式全套课件
- 郑钦文事迹介绍
- 中外舞蹈史课程大纲
- 载人飞艇系留场地净空要求细则
- 大棚螺旋桩施工方案
- 中数联物流科技(上海)有限公司招聘笔试题库2025
- DB4401∕T 147-2022 游泳场所开放条件与技术要求
- DB65∕T 4767-2024 普通国省干线公路服务设施建设技术规范
- 制氧站建设合同3篇
- 安静的力量主题班会课件
评论
0/150
提交评论