下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构复习资料总结2012-05 T.H.C 2012-06-05 MODIFY目录1. 第一章 31.1 基本概念题 31.2 逻辑结构题 31.3 物理结构题 31.4 算法特性题 42. 线性表 42.1 基本概念题 42.2 顺序表 42.3 链表概念题 52.4 链表指针题 52.5 链表编程题 73. 栈和队列 83.1 栈的概念题 83.2 进栈出栈题 93.3 链栈指针题 93.4 链栈编程题 103.5 队列概念题 113.6 链队指针题 113.7 链队编程题 123.8 循环队列题 134. 串 134.1 串的基本概念 134.2 串函数 144.5 串的编程题 14
2、5. 数组和广义表 155.1 数组坐标换算题 155.2 矩阵题 155.3 广义表 166. 树和二叉树 166.1 二叉树的概念性质 166.2 二叉树的链式存储 186.3 树的遍历概念题 186.4 树的遍历操作题 196.5 树的遍历编程题 216.6 哈夫曼树 226.7 树的遍历反过来做的题 227. 图 237.1 图的基本概念 237.2 图的遍历 247.3 图的最小生成树 257.5 图的连通性 268. 查找 268.1 顺序查找 268.2 折半查找 268.3 二叉排序树 278.4 二叉判定树 298.5 哈希函数 308.6 折半查找编程题 308.7 二叉排
3、序树编程题 319. 排序 329.1 排序基本概念 329.2 直接插入排序 329.3 折半插入排序 329.4 交换排序之冒泡排序 329.5 交换排序之快速排序 349.6 选择排序之直接选择排序 359.7 选择排序之堆排序 359.8 选择排序之归并排序 389.9 排序稳定性题 381. 第一章1.1 基本概念题1线性结构中数据元素的位置之间存在()的关系。 【 B】A 一对多C.多对多B一对一D每一个元素都有一个直接前驱和一个直接后继注:D选不全的,第一个元素就木有前驱,最后一个元素就木有后继。)结构。 【 D】D 逻辑2数据结构中,与所使用的计算机无关的是数据的(A 物理 B
4、 存储 C 逻辑与物理3结构中的数据元素存在一对一的关系称为结构。 【线性】4数据元素是数据的基本单位,它()。【C】A.只能有一个数据项组成B至少有二个数据项组成C. 可以是一个数据项也可以由若干个数据项组成D. 至少有一个数据项为指针类型5 一种逻辑结构()存储结构。A.可以有不同的BC.的数据元素在计算机中的表示称为【A】只能有唯一的D 的数据元素之间的关系称为1.2 逻辑结构题1 通常数据的逻辑结构包括 、四种类型。【集合;线性;树形;图状】2 通常可以把一本含有不同章节的书的目录结构抽象成 结构。【树形】3 通常可以把某城市中各公交站点间的线路图抽象成结构。【图状】4结构中的数据元素
5、存在多对多的关系称为5结构中的数据元素存在一对多的关系称为6.结构中的数据元素存在一对一的关系称为结构。【图状(网状) 】结构。 【树形】结构。【线性】1.3 物理结构题1 把数据存储到计算机中,并具体体现数据之间的逻辑结构称称为物理()结构。【存储】2 把数据存储到计算机中,并具体体现数据之间的逻辑结构称为 结构。(物理(存储)1.4 算法特性题1以下特征中, ()不是算法的特性。 【C】A.有穷性B 确定性C 有0个或多个输出D 可行性2算法的时间复杂度与(A.所使用的计算机BC.与数据结构D)有关。 【D】与计算机的操作系统与算法本身3要求在n个数据元素中找其中值最大的元素,设基本操作为
6、元素间的比较。则比较的次数和算法的时间复杂度分别为 和 O(n) 。 【n-1 】2. 线性表2.1 基本概念题1 针对线性表,在存储后如果最常用的操作是取第 i个结点及其前驱,则采用()存储方式最节省时间。 【B】A.单链表 B 顺序表 C 单循环链表 D 双链表2.2 顺序表1 设有一个长度为n 的顺序表,要在第 i个元素之前(也就是插入元素作为新表的第i 个元素),则移动元素个数为()。【 A】A n-i+1B n-iCn-i-1Di注:元素要插入到i 的位置,不动的是前面i-1 个元素,总元素有 n 个,要移动的元素个数是:n-(i-1) 即: n- i +12. 设顺序存储的线性表长
7、度为 移动元素的次数为()。【AA. n/2 B n Cn,对于插入操作,设插入位置是等概率的,则插入一个元素平均n-1 D n-i+13 . 设顺序存储的线性表长度为 移动元素的次数为()。A(n+1)/2B nn,对于删除操作,设删除位置是等概率的,则删除一个元素平均A】C 2nD n-i4线性表的顺序结构中,()。【C】A逻辑上相邻的元素在物理位置上不一定相邻B数据元素是不能随机访问的C. 逻辑上相邻的元素在物理位置上也相邻D. 进行数据元素的插入、删除效率较高2.3链表概念题1 链表所具备的特点是()。【D】A. 可以随机访问任一结点B. 占用连续的存储空间C. 可以通过下标对链表进行
8、直接访问D. 插入删除元素的操作不需要移动元素结点2 .线性表采用链式存储时,其地址()。【C】A. 定是不连续的B.必须是连续的C.可以连续也可以不连续D.部分地址必须是连续的3.设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使向第一个结点,可用语句 。【p=p-> next;】4 在双向链表中,每个结点有两个指针域,一个指向 ,另一个指向 【结点的直接后继 结点的直接前驱】5 以下说法中不正确的是()。【B】A. 双向循环链表中每个结点需要包含两个指针域B. 已知单向链表中任一结点的指针就能访问到链表中每个结点C. 顺序存储的线性链表是可以随机访问的
9、D. 单向循环链表中尾结点的指针域中存放的是头指针6 以下表中可以随机访问的是()。【D】A .单向链表B.双向链表C.单向循环链表D顺序表2.4链表指针题基本图形:1 .在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是()。【C】A . p=q->next B . p->next=q C . p->next=qnext D . q->next=NULL2. 在双向链表中,每个结点有两个指针域,一个指向结点的直接后继,另一个指向 【结点的直接前驱】3.设有一个头指针为 所指结点为尾结点。【head的单
10、向循环链表,p指向链表中的结点,若head :p_>n ext=,则p4.设有一个头指针为,就可使该单向链表构造成单向循环链表。head的单向链表,p指向表中某一个结点,且有【p->next=head;】p->next=NULL,通过操作5. 带头结点的单向链表的头指针为A . head = = NULLBC . head-> next= = NULL Dhead,该链表为空的判定条件是(.head->next= =head.head = =head->next)的值为真。【C】6.双向循环链表结点的数据类型为:struct node int data;st
11、ruct node *n ext; /*struct node *prior;;设(A.C.【B:指向直接后继*/p指向表中某一结点,要显示)printf( “ d' ,p->next->data); printf( “ d' ,p->prior->next);所指结点的直接前驱结点的数据元素,可用操作.printf(“d' ,p->prior->data);.printf( “ %cf ,p->data);得到一个新的不带头结点的单向循环链表,P,则可执行 head=head-> next;7.要在一个带头结点的单向循环
12、链表中删除头结点, 若结点的指针域为next,头指针为head,尾指针为【p->next=head ;】&设有一个头指针为 head的单向链表,p指向表中某一个结点,且有 p->next= =NULL,通过操作,就可使该单向链表构造成单向循环链表。【p->next=head;】9. 双向循环链表中,p指向表中某结点,则通过p可以访问到p所指结点的直接后继结点和直接前驱结点,这种说法是 的(回答正确或不正确)。【正确】10. 设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句 。【p->next=h
13、ead;】11. 设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式 的结果为真,则p所指结点为尾结点。【p->next= =head;】12. 设有一个单向循环链表,头指针为head,链表中结点的指针域为next , p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作。【p->next=head ;】13. 要在一个单向链表中p所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为 next,可执行和 p->next=s;的操作。【s->next= p->next;】14.
14、要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行 。【q->next= p->next;】2.5链表编程题1 编程题 以下是用头插法建立带头结点且有n个结点的单向链表的程序,要求结点中的数据域从前向后依次为n,n-1, ,1,完成程序中空格部分。NODE *create2( n) NODE *head , *p, *q;int i;p=(NODE*)malloc(sizeof(NODE);p-> next=NULL;head= (1);(2) :for(i=1; i<=n; i+) p= (3):p-&g
15、t;data=i;if(i= =1)p-> next=NULL;elsep->n ext=(4):q->n ext=(5): return(head);下面答案:(1) p(2) q=p3) (NODE*)malloc(sizeof(NODE)4) q->next5) p2编程题 以下函数在 head 为头指针的具有头结点的单向链表中删除第 i 个结点, struct node int data;struct node *next;typedef struct node NODEint delete(NODE *head,int i )NODE *p,*q;int j;
16、q=head;j=0;while(q!=NULL)&&( _(1)_(2);j+;if(q=NULL)return(0);p= _(3);_(4)=p->next;free(_(5);return(1);下面答案:(1) j<i-1( 2) q=q->next( 3) q->next( 4) q->next( 5 ) p3. 栈和队列3.1 栈的概念题1 栈的插入删除操作在()进行。 【 B】A 栈底 B 栈顶 C任意位置D 指定位置B 栈和队列的特点都是先进后出D .栈和队列的特点都是先进先出2以下说确的是()。 【 C】A 栈的特点是先进先出,
17、队列的特点是先进后出C.栈的特点是先进后出,队列的特点是先进先出3 栈和队列的相同点是()。【D】A.都是后进先出B.都是后进后出C. 逻辑结构与线性表不同D. 逻辑结构与线性表相同,都是操作规则受到限制的线性表3.2进栈出栈题1 .元素3, 6,A . 9,C . 6,3,3,9按顺序依次进栈,69则该栈的不可能输出序列是(.9, 6, 3【A】.3, 9, 6)(进栈出栈可以交替进行)。2.元素2,行)。【DIA . 8,C . 4,6,8按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进3 .进行)4.6,2,4,8,.2, 4, 6, 8.8, 6, 2, 4-个栈的进栈
18、序列是【A】A . 5, 8, 6, 7C . 7, 6, 5, 85,7,8,则栈的不可能的出栈序列是()(进出栈操作可以交替-个栈的进栈序列是A . hgfe Befgh.gfeh.7, 6, 8, 5.8, 7, 6, 5,则栈的不可能的出栈序列是()(进出栈操作可以交替进行)。【DC . fgeh D . ehfg3.3链栈指针题0贰曰next结点,两个部分】数摇区出指针区net 楷针区的人表示NULLffi.表示没有地址。or駙札nextCnextDi'出栈就是读取第一个结点,然后删除第一个结点°入栈就是从头部插入一个结点&1. 从一个栈顶指针为 h的链栈中
19、删除一个结点时,用x保存被删结点的值,可执行 x=h->data;和。(结点的指针域为next)【h=h->next; I2. 向一个栈顶指针为h的链栈中插入一个 s所指结点时,可执行 和h=s;。【s->next=h;3. 从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行 和4 .设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用针域为next,数据域为data,则可执行x=;禾口 hs= x保存出栈结点的值,栈结点的指;【hs->data;hs->n ext;5. 设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域
20、next组成,设用x接收栈顶元素,则出栈操作为()。【AA. x=top->data;top=top->next;B. top=top->next;x=top->data;C. x=top-> next;top=top-> data;D. top->next =top; x=top->data;6. 设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。【CA. top->data= x;B. top=top->next;C. x=top->data;D
21、. x=top->data; top= top->next;11 . C 12 . C 13 . D 14 . B 15 . A7.设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,则可执行操作s-> n ext=hs;。【hs=s ;&设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指针域为 next,则可执行 x=hs->data; 。【hs=hs->next;9.设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,则可执行操作 和hs=s ;【s->n ext=hs;3.4链栈编程题1. 编程
22、题 以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针struct node ElemType data;struct node *n ext;struct node *top ;void Push(ElemType x)struct node *p;p=(struct no de*)malloc( p->data=x;(2) ;(3);(1) );F面答案: (1) sizeof (struct node)(2) p_>next=top(3) top=p3.5队列概念题1 队列的删除操作在()进行。【A】D.在任意指定位置A.队头B.队尾C.队头或队尾2 .以下
23、说确的是()。【C】A.队列是后进先出B.栈的特点是后进后出C. 栈的删除和插入操作都只能在栈顶进行D. 队列的删除和插入操作都只能在队头进行3 .以下说法不正确的是()。【C】A.栈的特点是后进先出B.队列的特点是先进先出C. 栈的删除操作在栈底进行,插入操作在栈顶进行D. 队列的插入操作在队尾进行,删除操作在队头进行4. 在队列的顺序存储结构中,当插入一个新的队列元素时,指针的值增1,当删除一个元素队列时,指针的值增1。【尾 头】3.6链队指针题1. 在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。【DA . r=f->next; B . r=r->n
24、ext; C . f=r->next; D . f=f->next;2. 在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为 和r=s;(结点的指针域为 n ext)【r->n ext=s;3 .在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next , s指向一个要入队的结点,则入队操作为 ; ;【r->next=s ; r=s ;】4. 在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,则插入一个s所指结点的操作为 ; r=s ;【r->next=s 5 .栈和队列的操作特点分别是 和。【先进后出(后进先出)先进
25、先出(后进后出)6 .在一个不带头结点的非空链队中,f和r分别为队头和队尾指针,队结点的数据域为data,指针域为next,若要进行出队操作,并用变量x存放出队元素的数据值,则相关操作为 ; 。【x=f->data; f=f->n ext;7. 综合题(1)设head1和p1分别是不带头结点的单向链表 A的头指针和尾指针,head2和p2分 别是不带头结点的单向链表 B的头指针和尾指针,若要把 B链表接到A链表之后,得到一个以 head1 为头指针的单向循环链表,写出其中两个关键的赋值语句(不用完整程序,结点的链域为next )。(2)单向链表的链域为next,设指针p指向单向链表
26、中的某个结点,指针s指向一个要插入链表的新结点,现要把 s所指结点插入p所指结点之后,某学生采用以下语句:p->n ext=s; s->n ext=p->n ext;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写下面答案:( 1) p1->next= head2 ;p2->next= head1 2)不对, s->next= p->next ; p->next=s ;3.7 链队编程题1编程题 以下函数为链队列的入队操作, x 为要入队的结点的数据域的值, front 、 rear 分别是链 队列的队头、队尾指针struct node
27、ElemType data;struct node *next;struct node *front , *rear;void InQueue(ElemType x)struct node *p;p= (struct node*) _(1);p->data=x;p->next=NULL;_(2);rear= _(3);下面答案: ( 1) malloc(sizeof (struct node) ( 2) rear->next=p(3) p2编程题 以下函数为链队列的出队操作(链队列带有头结点),出队结点的数据域的值由 x 返回,front 、 rear 分别是链队列的队头、队
28、尾指针struct node ElemType data;struct node *next;struct node *front , *rear;ElemType OutQueue()ElemType x;if(_(1) printf(" 队列下溢错误! n");exit(1);else struct node *p=front->next;x=p->data;fron t-> next=(2);if(p->n ext=NULL) rear=fro nt; free(p);(3);下面答案:(1) front= =rear(2) p->nex
29、t(3) return(x)3.8循环队列题1. 循环队列的队头指针为f,队尾指针为r,当时表明队列为空。【r= =f】2循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效地判断栈空或栈满,若队头指针front=4,当队尾指针rear=时队满,队列中共有 个元素。 【3; 5】3循环队列的最大存储空间为MaxSize=8,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,则当队尾指针rear=时,队列为空,当rear=时,队列有6个元素。【4; 2】4 循环队列的引入,目的是为了克服 。【假上溢】5. 循环队列的最大存储空间为MaxSize,队头指针为f
30、,队尾指针为r,当时表明队列已满。【(r+1) % MaxSize = f :4. 串4.1串的基本概念性质:“双引号的字符串是以 0 '表示结束的。要多占一个字节。1.在C语言中,顺序存储长度为3的字符串,需要占用()个字节。【】A. 3B. 4C. 6D. 122在C语言中,利用数组 a存放字符串“ Hello”以下语句中正确的是()。【AA. char a10=“ Hello ” ;B. char a10; a= “ Hello” ;C. char a10= HelloD. char a10='3 .两个串相等的充分必要条件是 。【串长度相等且对应位置的字符相等】4 .串
31、的两种最基本的存储方式是 和 。【顺序存储链式存储】5. A '在存储时占 个字节。“A”在存储时占 个字节。【1; 2】6顺序存储字符串“ ABCD'需要占用 个字节。【5】4.2串函数性质StrCmp函数有三个结果:第一个字符串大于第二个字符串,结果:1第一个字符串等于第二个字符串,结果:0第一个字符串小于第二个字符串,结果:-1对应位置比较,根据 ASCII码进行比较。数字编码最小,其次大写字母,其后是小写字母。1.串函数StrCmp (“ d ”,“ D”)的值为()。【B】A. 0B. 1C. -1D. 32 .串函数StrCmp( abA","a
32、ba")的值为()。【D】A. 1B. 0C. “abAaba”D. -14.5串的编程题1 .程序段 in t cou nt=0;char *s= ” ABCD'while(*s!= 0 ')s+;count+;执行后 count=【4】2. char *p;【Bp=StrCat( “BD”,”ABC”); Printf( %s,p);的显示结果为()OA. -1B. ABDABCC. ABD. 13 .程序段 char *s= "aBcD' n=0;while(*s!= 0 )if(*s> = 'a'&*s<
33、= )n+;s+;执行后n=【2 5. 数组和广义表5.1数组坐标换算题三个公式:对称矩阵:P77i(t-l).k =屮2心丿/0 - 1).+£ 1<2下三角矩阵:P77ft(t-l),k =2i>j0对角矩阵:P78t =j + Li = /i + 1 =;)耳10其他1 设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主存储到一维数组B中(数组下标从1开始),则矩阵中元素 A8,5在一维数组B中的下标是()。【AA 33B. 32C. 85D. 412 .设有一个15阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B
34、中(数组下标从1开始),则矩阵中元素a7,6在一维数组B中的下标是()。【C】A. 42B. 13C. 27D. 323 .设有一个15阶的对称矩阵A,采用压缩存储方式将其下三角部分以行序为主序存储到一维数组b中。(矩阵A的第一个元素为 a1,1,数组b的下标从1开始),则数组元素b13对应A的矩阵兀素是()。A. a5,3B.【A】a6,4C. a7,2D. a6,84 .设有n阶对称矩阵 元素的下标为A,用数组S进行压缩存储,当i<j。(数组元素的下标从 1开始)时,A的数组兀素aij相应于数组S的数组【i(i-1)/2+j】5.设有一个12阶的对称矩阵A,采用压缩存储方式将其下三角
35、部分以行序为主序存储到一维数组 b中(矩阵A的第一个元素为a1,1,数组b的下标从1开始),则矩阵A中第4行的元素在数组 b中的下标i 一定有()。【A】A、7 < i< 10B、11 < i< 15C、9< i< 14D、6< i< 95.2矩阵题1.稀疏矩阵存储时,采用一个由 、3部分信息组成的三元组唯一确定矩阵中的一个非零元素。【行号;列号;非零元】5.3广义表6. 树和二叉树6.1二叉树的概念性质P92二叉树的性质1. 二叉树上终端结点数等于双分支结点数加1。2. 二叉树上第i层上至多有忖' 个结点(2 1|)。3. 深度为h的二
36、叉树至多有 卜'4个结点。4. 对于一颗二叉树中顺序编号为i的结点,若它存在左孩子,则左孩子结点的编号为';若它存在右孩子,则右孩子结点的编号为2i+1,若它存在双亲结点(即编号不等于1),则双亲结点的编号为陶。5. 具有n个结点的理想二叉树的深度为I I或吨倒":1'。1.在一棵叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为()。【D】A. 2iB. 2i-1C. 2i+2D. 2i+12 .一棵二叉树中顺序编号为i的结点,若它存在左、右孩子,则左、右孩子编号分别为 、【2i和2i+1】注释:1题和2题都是利用性质 43. 一棵有n个叶结点的二叉树
37、,其每一个非叶结点的度数都为2,则该树共有 个结点。【2n-1】4. 一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有 个叶结点。【n】注释:3题和4题是利用同一个性质1完成。结点总数:衍却叱丰闯每一个非叶结点的度数都为2,说明:中二“,就是结点要么没有孩子,要么有两个孩子。结果:怠炳点社门二4:迪 根据性质1又有: 根据上面两个结论,可以求出 3题和4题。5 .一棵有14个结点的完全二叉树,则它的最高层上有 个结点。【7】注释:完全二叉树如下图所示:最高一层数一下有七个结点。第一层第层第三层/第四层6. 综合题之一 “一棵二叉树若它的根结点的值大于左子树所有结点的值,小
38、于右子树所有结点的 值,则该树一定是二叉排序树”。该说法是否正确,若认为正确,则回答正确,若认为不正确则 说明理由? 【不正确,二叉排序树要求其子树也是二叉排序树。】7 .一棵完全二叉树共有 30个结点,则该树一共有()层(根结点所在层为第一层)。【D】A. 6B. 4C. 3D. 5注释:两个方法:1.画图2.套公式:性质5的公式。8.棵二叉树总结点数为 11,叶结点数为5,该树有个双分支结点, 个单分支结点。【4; 2】注释:和3题4题一样,是利用同一个性质1完成。参阅前面的注释。9深度为k的二叉树最多有结点。【2k-1】10 .深度为5的满二叉树至多有()个结点(根结点为第一层)【B】A
39、. 40B. 31C. 34D. 35注释:9题和10题是套性质3的公式 才-丄11 . 一棵二叉树中顺序编号为 5的结点(树中各结点的编号与等深度的完全二叉中对应位置上结点的编号相同),若它存在左孩子,则左孩子的编号为 。【10】12 一棵二叉树没有单分支结点,有6个叶结点,则该树总共有 个结点。【11】13 .一棵有n个叶结点的二叉树,其每一个非叶结点的度数都为2,则该树共有 个结点。【2n-1】14 一棵二叉树叶结点(终端结点)数为5,单分支结点数为2,该树共有 个结点。【11】注释:12题13题14题 和3题4题一样,是利用同一个性质1完成。参阅前面的注释。15 .二叉树为二叉排序的充
40、分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法是 的。(回答正确或不正确)【错误】注释:论断太绝对,叶子结点没有后代。16 .一棵二叉树顺序编号为 6的结点(树中各结点的编号与等深度的完全二叉中对应位置上结点的编号相同),若它存在右孩子,则右孩子的编号为 。【13】注释:利用性质417 .设一棵完全二叉树,其最高层上最右边的叶结点的编号为奇数,该叶节点的双亲结点的编号为10,该完全二叉树一共有个结点。【21】注释:参阅下图:第i层第二层第二层第四层1 .设一棵有n个结点采用链式存储的二叉树,则该树共有(A. 2nB. n+1C. 2n+1)个指针域为空。D.2n+2【
41、B】6.3树的遍历概念题1 .对二叉排序树进行(A.按层次)遍历,遍历所得到的序列是有序序列。B. 前序C.中序【C】D.后序遍历二叉排序树可得到一个有序序列。【中序】3 .对二叉树的遍历可分为 _【先序、中序、后序、层次】四种不同的遍历次序。4.设一棵完全二叉树,其最高层上最右边的叶结点的编号为偶数,该叶节点的双亲结点的编号为 9,该完全二叉树一共有 个结点。【18】5. 一棵有n个叶结点的二叉树,其每一个非叶结点的度数都为 2,则该树共有个结点。【2n-1】6 .一棵哈夫曼树总共有 23个结点,该树共有(A. 10B. 13C. 11)个叶结点(终端结点)D. 12【D】6.2二叉树的链式
42、存储注释:本题和3题4题一样,是利用同一个性质1完成。参阅前面的注释。 本题由“哈夫曼树”隐含的说明了一个条件:没有单分支的结点。7 一棵哈夫曼树总共有 25个结点,该树共有()个非叶结点(非终端结点)。【A】A. 12B. 13C. 14D. 158.按照二叉树的递归定义,对二叉树遍历的常用算法有 、 三种。【先序;中序;后序】6.4树的遍历操作题1 .如图2所示的二叉树,其先序遍历序列为 。【abdgcefhi】)。【A】3 .如图若从顶点a出发按广度优先搜索法进行遍历,则可能得到的顶点序列为()。【D】A. acebdfgh B. aebcghdf C. aedfbcghD. abecd
43、fgh4.如图2所示的二叉树,其后序遍历序列为。【gdbeihfca 】2 .如图若从顶点a出发按深度优先搜索法进行遍历,则可能得到的顶点序列为(A. acfgedbB. aedcbgfC. acfebdg D. aecbdgf5.如图2所示的二叉树,其前序遍历序列为 。【abdefcg】團2*6.如图2所示的二叉树,其后序遍历序列为。【gdbeihfca 】)。【B】7 .如图若从顶点a出发按深度优先搜索法进行遍历,则可能得到的顶点序列为(A. acfgedbB. aedbgfcC. acfebdg D. aecbdgf6.5树的遍历编程题1. 编程题 以下程序是先序遍历二叉树的递归算法的程
44、序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。void Preorder (struct BTreeNode *BT) if(BT!=NULL)(1) ;(2) ;(3);下面答案:(1) printf( “ c”,BT->data)(2) Preorder(BT->left)(3) Preorder(BT->right)2. 编程题 以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中,左、 右指针域分别为left和right,数据域data为字符型,BT指向根结点)。void Posto
45、rder (struct BTreeNode *BT) if(BT!=NULL)(1) ;2;(3);下面答案: (1) Postorder(BT->left)(2) Postorder(BT->right)(3) printf( “ c” ,BT->data)3. 编程题以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。void In order (struct BTreeNode *BT) if(BT!=NULL)(1) ;(2) ;(3) ;下面答案:(1) In or
46、der(BT->left)(2) printf( “ c”,BT->data)(3) In order(BT->right)6.6哈夫曼树1设一棵哈夫曼树共有 n个叶结点,则该树有()个非叶结点。【A】A. n-1B. nC. n+1D. 2n2 .一棵哈夫曼树有A. 2212个叶子结点(终端结点),该树总共有()个结点。【C】B. 21C. 23D. 243. (1)以给定权重值1, 2, 12, 13, 20, 25为叶结点,建立一棵哈夫曼树(2)若哈夫曼树有n个非叶子结点,则树中共有多少结点。对给定的一组权重值建立的棵哈夫 曼树是否一定唯一下面答案6.7树的遍历反过来做
47、的题1. 综合题 (1)已知某二叉树的后序遍历序列是debca,中序遍历序列是 dbeac,试画出该二叉树(2)若上述二叉树的各个结点的字符分别代表不同的整数(其中没有相等的),并恰好使该树成为一棵二叉排序树,试给出a、b、c、d、e的大小关系(3)给出该树的前序遍历序列(1)宀(3) adders2. 综合题 (1)已知某二叉树的先序遍历序列是aecdb,中序遍历序列是 eadcb,试画出该二叉树(2)给出上述二叉树的后序遍历序列(3) 若上述二叉树的各个结点的字符分别是1,2, 3,4, 5,并恰好使该树成为一棵二叉排序树, 试问a、b、c、d、e的值各为多少?下面答案:C2) edbca
48、t"C3) =1 ,a=2pd=3,0=4,15=7. 图7.1图的基本概念P124:全部顶点的度数为所有边数的2倍,或者说,边数为全部顶点的度数的一半。1. 在一个无向图中,所有顶点的度数之和等于边数的()倍。 【D】A. 3B. 2.5C. 1.5D. 22 已知一个图的边数为m,则该图的所有顶点的度数之和为()。【A】A. 2mB. mC. 2m+1D. m/2)。【D】3 .已知一个图的所有顶点的度数之和为m,则该图的边数为(A. 2mB. mC. 2m+1D. m/24 .以下说法不正确的是()。【D】A. 连通图G 一定存在生成树B. 连通图G的生成树中一定包含 G的所有
49、顶点C. 连通图G的生成树中不一定包含 G的所有边D. 连通图G的生成树可以是不连通的5.以下说法不正确的是()。【A】A. 连通图G的生成树一定是唯一的B. 连通图G 一定存在生成树C. 连通图G的生成树中一定要包含 G的所有顶点D. 连通图G的生成树一定是连通而且不包含回路7.2图的遍历1.根据搜索方法的不同,图的遍历有 、两种方法【深度优先广度优先】2 .图的深度优先搜索和广度优先搜索序列不一定是唯一的。此断言是的。(回答正确或不正确)【正确】3. 已知如图1所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为()。【C】A . abcedf B . aeb
50、cfd C . abcefdD . acfdeb4 .已知如图1所示的一个图,若从顶点 Vi出发,按广度优先进行遍历,则可能得到的一种顶点序列为()。【C】A . VV2V3V6V7V4V5V8 B . ViV2V3V4V5V8VgV7C. V1V2V3V4V5V5VV8D . MVaV?W8V5V6V7(£212(d)(b)©o01616li10102121225(f)nCh)1414'141407.3图的最小生成树10/应用克鲁期卡尔算法构造最小生成树的过程(1.1n应用克鲁斯卡尔算法构造最小生成树的过程 loP 14.A167.5 图的连通性1以下说确的是()
51、。 【D】A. 连通图G的生成树中不一定包含 G的所有顶点B. 连通图G的生成树中一定要包含 G的所有边C. 连通图G的生成树一定是唯一的D. 连通图G一定存在生成树8. 查找8.1 顺序查找1.对长度为 n 的线性表进行顺序查找,在等概率情况下,平均查找长度为()。 【B】A. nB.( n+1) /2C. 2nD. n-12.采用顺序查找法对长度为n 的线性表进行查找(不采用表尾设监视哨的方法),最坏的情况下要进行()次元素间的比较。【B】A. n+2B. nC. n-1D. n/28.2 折半查找1.在有序表 2 ,4,7,14,34,43,47,64,75,时,经()次比较后查找成功。【】A. 2B.3 C.4D80,90,97,120中,用折半查找法查找值80.52. 有一个长度为 10 的有序表, 按折半查找对该表进行查找, 在等概率情况下查找成功的平均比较次数为( A )。A. 29/10B. 31/10C. 26/10 D. 29/93. 在有序表 1,3,8,13,33,42,46,63,76,78,86,97,100中,用折半查找值 86 时,经( )次比较后查找成功。【 D】A. 6B. 3C. 8D. 44. 用折半查找法,对长度为12 的有序的线性表进行查找,最坏情况下要进行()次元素间的比较【
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 放射教育培训制度
- 政法委严格选人用人制度
- 政府政策绩效考核制度
- 教师绩效考核制度范本
- 教育培训前台规章制度
- 教育培训师资规章制度
- 教育培训机构相关制度
- 教育培训类收款制度
- 教育局会议培训制度
- 教育系统法制培训制度
- 2026延安志丹县人力资源和社会保障局公益性岗位招聘(50人)笔试备考题库及答案解析
- 车间内部转运车管理制度
- 2026年山东省立第三医院初级岗位公开招聘人员(27人)笔试参考题库及答案解析
- 2026湖北武汉市江汉城市更新有限公司及其下属子公司招聘11人笔试备考题库及答案解析
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人笔试备考题库及答案解析
- 《机械制图》电子教材
- 平米三层综合楼框架结构计算书、结构图
- JJF 1458-2014磁轭式磁粉探伤机校准规范
- 环境工程专业考研复试个人陈述
- 中小学生防溺水安全教育PPT课件【爱生命防溺水】
- 常州注射器项目可行性研究报告范文参考
评论
0/150
提交评论