教育
-数据结构-章节资料考试资料-西北大学【】
数据结构的基础概念随堂测验
1、【单选题】一个抽象类型包括数据对象、 和一组处理数据的操作。
A、数据对象中各元素间的结构关系
B、数据元素集
C、接口
D、数据对象集
参考资料【 】
2、【填空题】抽象数据类型具有 、信息隐蔽的特点。
A、
参考资料【 】
第2讲数据结构的内容随堂测验
1、【判断题】线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。( )
A、正确
B、错误
参考资料【 】
2、【填空题】1、数据结构的逻辑结构分为集合、线性、层次和 四种。
A、
参考资料【 】
3、【填空题】2、数据结构的存储结构分为 和非顺序 两种。
A、
参考资料【 】
4、【填空题】3、在线性结构、树形结构和图结构中,数据元素之间分别存在着一对一、一对多和 联系。
A、
参考资料【 】
第3讲数据结构与C语言表示随堂测验
1、【单选题】当需要用一个形式参数直接改变对应实参的值时,该形式参数应说明为 。
A、与实参同类型指针参数
B、不需要参数
C、与实参同类型的参数
D、全局变量
参考资料【 】
第4讲算法性能评价随堂测验
1、【单选题】1、执行下面的程序段的时间复杂度为 。for(int i=0;im;i++) for(int j=0;jn;j++) a[i][j]=ij;
A、O()
B、O()
C、O(mn)
D、O (m+n)
参考资料【 】
2、【单选题】2、执行下面程序段时,语句S的执行次数为 。for(int i=0;i=n;i++) for(int j=0;ji;j++) S;
A、
B、
C、n(n+1)
D、
参考资料【 】
第5讲算法与算法描述随堂测验
1、【单选题】算法设计的要求是:正确性、可读性 、 和高效率和低存储 。
A、确定性
B、健壮性
C、可行性
D、有限性
参考资料【 】
2、【单选题】算法具有 有限性、确定性、 、输入、输出五大特性。
A、可行性
B、可读性
C、健壮性
D、正确性
参考资料【 】
第一章 单元测试
1、【单选题】下面程序段的时间复杂度为( )。for(int i=0;im;i++) for(int j=0;jn;j++) a[i][j]=ij;
A、O(m2)
B、O(n2)
C、O(mn)
D、O(m+n)
参考资料【 】
2、【单选题】执行下面程序段时,语句S的执行次数为( )。for(int i=0;i=n;i++) for(int j=0;j=i;j++) S;
A、nn
B、nn/2
C、(n+1)(n+2)/2
D、n(n+1)/2
参考资料【 】
3、【单选题】评价一个算法性能好坏的最重要标准是( )。
A、算法的鲁棒性
B、算法的可读性
C、算法的时间复杂度和空间复杂度
D、算法的正确性
参考资料【 】
4、【单选题】算法的时间复杂度与( )有关。
A、问题规模
B、计算机硬件性能
C、编译程序质量
D、程序设计语言
参考资料【 】
5、【单选题】算法分析的主要任务是分析( )。
A、算法是否具有较好的可读性
B、算法中是否存在语法错误
C、算法的功能是否符合要求
D、算法的执行时间与所需空间与问题规模的关系
参考资料【 】
6、【单选题】算法分析的目的是( )。
A、找出数据结构的合理性
B、研究算法中输入和输出的关系
C、分析算法的时空效率以求改进
D、分析算法的可读性
参考资料【 】
7、【单选题】数据的最小单位是( )。
A、数据项
B、数据类型
C、数据元素
D、数据变量
参考资料【 】
8、【单选题】某算法的时间复杂度是O(nn),表明该算法的( )。
A、问题规模是nn
B、问题规模与nn正比
C、执行时间与nn正比
D、执行时间等于nn
参考资料【 】
9、【单选题】如下程序段: for(i=1;i=n-1;i++) for(j=i+1;j=n;j++) x=x+1;其中语句x=x+1执行的语句频度为( )。
A、nn
B、n(n-1)/2
C、n*(n+1)/2
D、n*(n-1)
参考资料【 】
10、【单选题】以下算法的时间复杂度为( )。if (n = 0) { for(int i = 0; i n; i++) for(int j = 0; j n; j++) printf(输入数据大于等于零\n); } else { for(int j = 0; j n; j++) printf(输入数据小于零\n); }
A、O(1)
B、O(nn+n)
C、O(n)
D、O(nn)
参考资料【 】
11、【单选题】在数组A[0…n-1]中查找给定值K的算法大致如下: i=n-1; while(i=0 (A[i]!=k)) i–; return i; 该算法的时间复杂度为( )。
A、O(n-i+1)
B、O(n-i)
C、O(n)
D、无法确定
参考资料【 】
12、【单选题】下面算法的时间复杂度为( )。x=100; y=100;while(y0) if(x100) {x=x-10; y–;} else x++;
A、O(n)
B、O(100)
C、O(1)
D、O(nn)
参考资料【 】
13、【单选题】假设sqrt(n)函数中涉及的算法时间复杂度为O(1),那么下面的算法是判断n是否为素数,其时间复杂度为( )。void prime(int n){ for (i=2; isqrt(n) (n % i)!=0; i++) ; if (isqrt(n)) printf(%d is a prime number, n); else printf(%d is not a prime number, n);}
A、O(n)
B、O(1)
C、O(sqrt(n)) sqrt表示对n取根方
D、O(n-i)
参考资料【 】
14、【单选题】某算法中,执行频率最高的语句的执行次数为 则该算法的时间复杂度应该是( )。
A、T(n) = O(nnn)
B、T(n) = O(nn)
C、T(n) = O( (nnn+nn+n)/n )
D、T(n) = O(nn+n)
参考资料【 】
15、【单选题】数据结构中,数据处理的最小单位是( )。
A、数据
B、数据对象
C、数据元素
D、数据项
参考资料【 】
16、【多选题】以下属于数据元素间基本逻辑结构的是( )。
A、集合
B、线性
C、树
D、图
参考资料【 】
17、【多选题】以下属于算法特性的是( )。
A、0个或多个输入;至少1个输出
B、正确性
C、确定性
D、可行性和有限性
参考资料【 】
18、【多选题】算法设计的要求包括( )。
A、正确性
B、可读性
C、健壮性
D、高效率和低存储
参考资料【 】
19、【多选题】数据元素在计算机内存中的存储映像包括( )。
A、顺序存储
B、非顺序存储
C、图结构
D、树结构
参考资料【 】
20、【多选题】抽象数据类型包括了( )。
A、一个数据对象
B、元素的存储结构
C、元素间的关系
D、一组操作
参考资料【 】
21、【判断题】具有线性结构的元素只能用顺序存储,具有非线性结构的元素只能非顺序存储。
A、正确
B、错误
参考资料【 】
22、【判断题】算法就是程序。
A、正确
B、错误
参考资料【 】
23、【判断题】算法的优劣与算法描述的语言无关。
A、正确
B、错误
参考资料【 】
24、【判断题】算法的可行性是指每一条指令具有明确含义。
A、正确
B、错误
参考资料【 】
25、【判断题】健壮的算法不会因为非法输入数据而出现莫名其妙的执行结果。
A、正确
B、错误
参考资料【 】
26、【判断题】算法设计的要求就是要设计高效率和低存储的算法。
A、正确
B、错误
参考资料【 】
27、【判断题】数据类型就是变量。
A、正确
B、错误
参考资料【 】
28、【判断题】数据元素的存储结构分为顺序存储和非顺序存储。
A、正确
B、错误
参考资料【 】
29、【判断题】数据元素的顺序存储结构优于非顺序存储。
A、正确
B、错误
参考资料【 】
30、【判断题】元素间的逻辑关系可分为线性和非线性关系两种。
A、正确
B、错误
参考资料【 】
第1讲线性表的概念随堂测验
1、【单选题】线性表是具有n个( )的有限序列(n0)
A、数据对象
B、数据元素
C、字符
D、数据项
参考资料【 】
2、【单选题】线性表是一个( )。
A、有限序列,可以为空
B、有限序列,不可以为空
C、无限序列,可以为空
D、无限序列,可以为空
参考资料【 】
3、【判断题】线性表的特点是每个元素都有一个前驱和一个后继。()
A、正确
B、错误
参考资料【 】
第2讲线性表的顺序存储随堂测验
1、【单选题】若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( )(1=i=n+1)。
A、O(1)
B、O(n)
C、O(nn)
D、O()
参考资料【 】
2、【单选题】若长度为n的线性表采用顺序存储结构,删除第i个位置的元素,需要移动的元素个数为( )。
A、i
B、n-i
C、n-i+1
D、n-i-1
参考资料【 】
第3讲随堂测验
1、【单选题】对一个长度为n的顺序表,假设在任何位置上插入一个元素的概率是相等的,那么插入一个元素时要移动表中的( )个元素。
A、n
B、n+1
C、
D、
参考资料【 】
2、【判断题】线性表的顺序存储是指将表中元素按照从大到小或从小到大存储。
A、正确
B、错误
参考资料【 】
第4讲线性表的链式存储随堂测验
1、【单选题】通过表达式 可以获取带头结点的单链表L中首元素结点的数据值。
A、L->next
B、(L->next)->data
C、L->data
D、L->next
参考资料【 】
2、【判断题】单链表中必须设有头结点。()
A、正确
B、错误
参考资料【 】
第5讲单链表的基本运算随堂测验
1、【单选题】下列选项中, 项是链表不具有的特点。
A、插入和删除运算不需要移动元素
B、所需要的存储空间与线性表的长度成正比
C、不必事先估计存储空间大小
D、可以随机访问表中的任意元素
参考资料【 】
2、【单选题】有一个带头结点的单链表HEAD,则判断其是否为空链表的表达式是
A、HEAD= =NULL
B、HEAD-〉NEXT= =NULL
C、HEAD-〉NEXT= =HEAD
D、HEAD!=NULL
参考资料【 】
3、【单选题】在一个单链表中P所指结点后插入一个S所指结点时,应执行语句: 。
A、P->next=S;S->next=P->next;
B、S->next=P->next;P->next=S;
C、S->next=P->next;P=S;
D、S->next=P;P->next=S;
参考资料【 】
第6讲随堂测验
1、【单选题】设指针变量p指向单链表中结点A的直接前驱,若删除单链表中结点A,则需要修改指针的操作序列为( )。
A、q=p->next;p->next=q->next;free(q);
B、q=p->next; p->next=q->next;
C、p->next=p-> next->next;
D、q=p->next;p->data=q->data;free(q);
参考资料【 】
2、【判断题】对链表进行插入和删除操作时不必移动链表中结点。( )
A、正确
B、错误
参考资料【 】
3、【判断题】在单链表中,可以从头结点出发,查找到表中所有结点。( )
A、正确
B、错误
参考资料【 】
第二章 单元测试(1)
1、【单选题】在长度为n的顺序表中的第i( 1 = i = n+1 )个位置上插入一个元素,其算法时间复杂度为( )。
A、O(logn)(以2为底)
B、O(1)
C、O(n)
D、O(nn)
参考资料【 】
2、【单选题】在长度为n的顺序表中的第i( 1 = i = n+1 )个位置上插入一个元素,需要移动的元素个数为( )。
A、n-i
B、i
C、n-i+1
D、n-i-1
参考资料【 】
3、【单选题】链表不具有的特点是( )。
A、插入、删除不需要移动元素
B、可随机访问任一元素
C、不必事先估计存储空间
D、所需存储空间与线性表程度成正比
参考资料【 】
4、【单选题】在一单链表中,删除指针p所指的后继结点,以下语句正确的是( )。
A、p->next=p->next->next; free(p->next);
B、free(p->next);p->next=p->next->next;
C、 p=p->next;
D、s=p->next;p->next=s->next;free(s);
参考资料【 】
5、【单选题】假设删除长度为n的顺序表中的每个元素的概率相同,则删除一个元素平均要移动的元素个数是( )。
A、n
B、(n+1)/2
C、(n-1)/2
D、n/2
参考资料【 】
6、【单选题】设某顺序表中第一个元素的地址是Base,每个结点占m个单元,则第i个结点的地址为( )。
A、Base+(i-1)×m
B、Base+i×m
C、Base-i×m
D、Base+(i+1)×m
参考资料【 】
7、【单选题】长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i的合法值应该是( )。
A、i>0
B、1≤i≤n+1
C、1≤i≤n-1
D、0≤i≤n+1
参考资料【 】
8、【单选题】非空单链表结点结构为【data,next】,若指针p所指结点是尾结点,则( )表达式为真。
A、pNULL
B、p->nextNULL
C、p->nextP
D、p->next!=NULL
参考资料【 】
9、【单选题】某顺序表的第一个元素的存储地址是500,每个元素占4个单元,则第8个元素的起始地址是( )。
A、504
B、508
C、516
D、528
参考资料【 】
10、【单选题】在长度为n的顺序表中删除第i(1=i=n)个位置上的元素,需要移动的元素个数为( )。
A、n-i
B、n-i+1
C、n-i-1
D、i
参考资料【 】
11、【单选题】在长度为n的顺序表中的的末尾位置上插入一个元素,其算法时间复杂度为( )。
A、O(1)
B、O(n)
C、O(logn)(以2为底)
D、O(nlogn)
参考资料【 】
12、【单选题】以下算法的功能是在一个非递减的顺序存储线性表中,删除所有值相等的多余元素。时间复杂度为O(n),空间复杂度为O(1)。划线部分应填入的语句是( )。void DelRepeatData(SeqList *L){ i=0; j=1; while( j=L-last) { if(L-elem[i]L-elem[j]) ; else { L-elem[i+1]=L-elem[j]; i++; j++; } } L-last=i;}
A、i++
B、j++
C、i–
D、j–
参考资料【 】
13、【单选题】以下算法是删除带头结点单链表L中的最小的元素,横线处应填入的语句是( )。void DelMinNode(LinkList L){ p=L-next; pre=L; if(LNULL) return; while(p-next!=NULL) //pre指向最小元素的前驱元素,开始默认第一个结点最小,pre指向头结点 { if(p-next-data pre-next-data) pre=p; } //删除pre后面的结点 p=pre-next; ;}
A、free§; pre->next=p->next;
B、free(p->next);pre->next=p->next;
C、pre->next=p->next; free§;
D、p->next=pre->next;free§;
参考资料【 】
14、【判断题】单链表中增加头结点的目的是存储链表的长度。
A、正确
B、错误
参考资料【 】
15、【判断题】线性表在链式存储时,查找第i个元素的时间同i的值无关。
A、正确
B、错误
参考资料【 】
16、【判断题】线性表在顺序存储时,查找第i个元素的时间同i 的值成正比。
A、正确
B、错误
参考资料【 】
17、【判断题】线性表的特点是每个元素都有一个前驱和一个后继。
A、正确
B、错误
参考资料【 】
18、【判断题】线性表的链式存储结构优于顺序存储。
A、正确
B、错误
参考资料【 】
19、【判断题】顺序存储方式的优点是存储密度大,插入、删除效率高。
A、正确
B、错误
参考资料【 】
20、【判断题】顺序表的每个结点只能是一个基本类型,而链表的每个结点可以是一个构造类型。
A、正确
B、错误
参考资料【 】
21、【判断题】插入和删除操作是线性表的基本操作。这两种操作在数组中也经常使用。
A、正确
B、错误
参考资料【 】
22、【判断题】在顺序表中,逻辑上相邻的两个元素物理存储上也一定也相邻。
A、正确
B、错误
参考资料【 】
23、【判断题】在线性表的链式存储结构中,逻辑上相邻的两个元素在物理存储上并不一定紧邻。
A、正确
B、错误
参考资料【 】
24、【判断题】线性表采用顺序存储,必须占用一段地址连续的存储单元。
A、正确
B、错误
参考资料【 】
25、【判断题】顺序表结构适宜进行随机访问,而链表适宜进行插入、删除。
A、正确
B、错误
参考资料【 】
第7讲循环链表随堂测验
1、【单选题】有一个带头结点的循环单链表HEAD,则判断其是否为空链表的条件是 。
A、HEADNULL
B、HEAD-〉NEXTNULL
C、HEAD-〉NEXTHEAD
D、HEAD!=NULL
参考资料【 】
2、【判断题】在单向循环链表中,从表中任意结点出发都可以顺着next域访问到表中所有元素()
A、正确
B、错误
参考资料【 】
第8讲双向链表–随堂测验
1、【单选题】与单链表相比,双向链表的优点之一是 。
A、插入删除操作更加方便
B、可以进行随机访问
C、可以省略表头指针和表尾指针
D、访问前后相邻结点更方便。
参考资料【 】
2、【判断题】在双向链表L中,可以从任一结点p出发沿同一方向的指针域查找到表中所有元素。()
A、正确
B、错误
参考资料【 】
第9讲静态链表–随堂测验
1、【判断题】静态链表中与动态链表的插入和删除运算类似,不需要做元素的移动。()
A、正确
B、错误
参考资料【 】
2、【判断题】静态链表既有顺序存储结构的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与位置序号i无关,可以实现随机存取。()
A、正确
B、错误
参考资料【 】
第10讲链式结构小结–随堂检测
1、【单选题】已知单链表的头指针为head且该链表不带头结点,则该单链表为空的条件是 。
A、head== NULL
B、head->nextNULL
C、head->nexthead
D、head!=NULL
参考资料【 】
2、【单选题】设指针变量p指向单链表中某结点的直接前驱,若删除单链表中该结点,需要修改指针的操作序列为 。
A、 q=p->next; p->next=q->next;free(q);
B、 q=p->next; free(q);
C、 p->next=p->next->next;free(p->next);
D、q=p->next; free(q);
参考资料【 】
3、【单选题】设带有头结点的单向循环链表的头指针变量为head,则其判空条件是 。
A、headNULL
B、head->nextNULL
C、head->nexthead
D、head!=NULL
参考资料【 】
4、【判断题】在双向循环链表中,可以从任一结点p出发沿同一方向的指针域查找到表中所有元素。()
A、正确
B、错误
参考资料【 】
第12讲随堂测验
1、【单选题】下列选项中, 项是链表不具有的特点。
A、插入和删除运算不需要移动元素
B、所需要的存储空间与线性表的长度成正比
C、不必事先估计存储空间大小
D、可以随机访问表中的任意元素
参考资料【 】
2、【单选题】在线性表中最常用的操作是存取第i个元素及其前趋的值,可采用 存储方式最省时间?
A、顺序表
B、带头指针的双向循环链表
C、带头指针的单向循环链表
D、带头指针的单向链表
参考资料【 】
3、【单选题】下面关于线性表的叙述错误的是( )。
A、 线性表采用顺序存储必须占用一片连续的存储空间
B、线性表采用链式存储不必占用一片连续的存储空间
C、线性表采用链式存储便于插入和删除操作的实现
D、线性表采用顺序存储便于插入和删除操作的实现
参考资料【 】
总结与提高随堂测验
1、【单选题】某线性表中最常用的操作是存取序号为i的元素和在最后进行插入和删除运算,则采用 存储方式时间性能最好。
A、双向链表
B、双向循环链表
C、单向循环链表
D、顺序表
参考资料【 】
2、【单选题】已知一个带头结点的非空循环单链表,其尾指针是R,则其首元素结点的地址为:
A、 R->next
B、 *( R->next->next )
C、&( R->next->next )
D、 R->next->next
参考资料【 】
3、【判断题】线性表的顺序存储优于链式存储结构。()
A、正确
B、错误
参考资料【 】
4、【填空题】在带头结点的非空单链表中,头结点的存储位置由 指示
A、
参考资料【 】
第二章 单元测试(2)
1、【单选题】非空循环单链表L中,p指针指向尾结点,则以下表达式可能成立的是( )。
A、p->nextNULL
B、pNULL
C、p->nextL
D、pL
参考资料【 】
2、【单选题】若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。
A、顺序表
B、双向链表
C、带头结点的双循环链表
D、单循环链表
参考资料【 】
3、【单选题】某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
A、单链表
B、仅有头指针的单循环链表
C、双链表
D、带尾指针的单循环链表
参考资料【 】
4、【单选题】对于双向循环链表,在两个结点之间插入一个新结点需修改的指针共( )个。
A、2
B、3
C、4
D、5
参考资料【 】
5、【单选题】将带头指针的长度为m的单链表,链接到同样带头指针的长度为n的单链表末尾。该算法的时间复杂度为( )。
A、O(m)
B、O(n)
C、O(m+n)
D、O(m*n)
参考资料【 】
6、【单选题】在某双向链表中删除一个结点,需要改动( )个指针域。
A、1
B、2
C、3
D、4
参考资料【 】
7、【单选题】某双向链表中,结点结构为【prior,data,next】。那么删除p指针所指结点时,需要执行语句:p-next-prior=p-prior; ( ); free§;
A、p->prior->next = p->next
B、p->next = p->prior
C、p->prior = p->next
D、p->prior->next = p
参考资料【 】
8、【单选题】在一个长度大于2的单循环链表L中,P指针指向某结点,在P前插入S结点,要求在O(1)时间复杂度内完成,以下正确的是( )。
A、s->next=p->next;p->next=s; //将s结点插入到p之后t=s->data;s->data=p->data;p->data; //s结点和p结点的值互换
B、q=p->next;while(q->next!=p) q=q->next;s->next=p; q->next=s;
C、q=p->next;while(q->next!=p) q=q->next;q->next=s; s->next=p;
D、在p结点前插入s结点,而且要求在O(1)内,无法实现。
参考资料【 】
9、【单选题】两个单链表,可能相交,也可能不相交。如果相交,则从交点开始,合并为一个链表。设计一个算法那,判断两个链表是否相交,如果相交,求出相交的第一个结点。以下哪种说法正确( )。
A、可采用以下算法实现:第一步:先将两个链表各自遍历一遍,统计出两个单链表的长度m和n。假设m>n,k=m-n第二步:长链表先走k步:用指针p从长链表头开始,先走k步,此时p指向长链表的第k+1个结点。第三步:q从短链表头开始,和p一起走。p和q相等时,即为交点;如果p和q不相交,则两个链表不相交。
B、可采用以下算法实现:第一步:用两个指针p和q,分别从两个链表头开始,向后走。第二步:如果两个指针相等,即指向同一个结点,则说明相交,该结点就是交点。
C、可采用以下算法实现:第一步:将两个链表分别逆置。第二步:从头开始,什么时候链表分叉,该分叉的结点就是相交的结点。
D、该问题无法求解。
参考资料【 】
10、【单选题】编写高效算法,找出链表的中间结点。以下哪个算法更高效( )。
A、采用快慢指针方法。即:第一步:一个指针走的快,每次走2个结点;一个指针走的慢,每次走1个结点。第二步:当快指针到结尾或空时,慢指针所指结点即为中间结点。注:遇到链表结点为奇数或偶数时,需稍加改进即可。
B、第一步:遍历一遍链表,求出其长度n。第二步:再从头开始遍历链表,到n/2处即可。若n为偶数,中间结点则有2个;若n为奇数,则只有1个。需稍加处理。
C、第一步:将链表中的结点依次放入一个数组中,同时记录结点个数;第二步:数组中间位置即为中间结点。
D、无法实现
参考资料【 】
11、【单选题】为了逆序输出单链表中的结点,以下哪些算法无法实现该功能( )。
A、第一步:将单链表逆置;第二步:输出单链表中的元素;第三步:将单链表逆置,即恢复之前的单链表。
B、第一步:将单链表中的 元素依次放入一个数组中第二步:逆序输出该数组中的元素。
C、可用如下代码实现:void reversePrint(Node *p//p初值为单链表第一个结点{ while(p!=NULL) { reversePrint(p->next); printf("%c ",p->data); //假设结点值为字符}
D、算法思想:第一步:从头到尾找到最后一个结点;第二步:从最后一个结点向前依次输出每个结点的值。
参考资料【 】
12、【判断题】静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。
A、正确
B、错误
参考资料【 】
13、【判断题】循环单链表中,每个结点都有一个前驱和后继,因此循环单链表不是线性结构。
A、正确
B、错误
参考资料【 】
14、【判断题】静态链表中能容纳的元素个数在链表定义时就确定了,以后不能增加。
A、正确
B、错误
参考资料【 】
15、【判断题】静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
A、正确
B、错误
参考资料【 】
16、【判断题】线性表在顺序存储时,查找第i个元素的时间同i的值无关。
A、正确
B、错误
参考资料【 】
17、【判断题】线性表在顺序存储时,删除第i个元素的时间同i的值无关。
A、正确
B、错误
参考资料【 】
18、【判断题】静态链表因为采用的是一段连续的空间来存储元素,因此查找第i个元素的时间和i无关。
A、正确
B、错误
参考资料【 】
第1讲随堂测验
1、【单选题】 栈操作的特性是( )
A、FIFO
B、LIFO
C、FCFS
D、插入和删除操作限制在表的两端进行
参考资料【 】
2、【单选题】栈中,允许进行插入和删除的一端称为()
A、栈顶
B、栈底
C、栈头
D、栈尾
参考资料【 】
3、【判断题】栈是线性结构,是操作受限制的线性表。()
A、正确
B、错误
参考资料【 】
第2讲随堂测验
1、【多选题】1、 已知顺序栈的地址为s,此时栈不满且栈顶指示器top指向真实栈顶,执行元素x进栈操作正确的语句是( )
A、s->top++;s->elem[s->top]=x;
B、s->top= s->top+1;s->elem[s->top]=x;
C、s->elem[++s->top]=x;
D、s->elem[s->top]=x;s->top++;
参考资料【 】
2、【多选题】2、 已知顺序栈的地址为s ,此时栈不空且栈顶指示器top指向真实栈顶,执行出栈操作并将出栈元素赋值给x所指向的单元,则下列语句中,正确的是( )
A、s->top–; *x= s->elem[s->top];
B、*x= s->elem[s->top]; s->top= s->top-1;
C、x =s->elem[s->top–];
D、x= s->elem[s->top];s->top–;
参考资料【 】
3、【判断题】1、 已知顺序栈的地址为s ,此时栈不空且栈顶指示器top指向真实栈顶,执行取栈顶操作的语句是x= s-elem[s-top–]😭 )
A、正确
B、错误
参考资料【 】
第3讲随堂测验
1、【单选题】已知一个双端栈的地址为dS,则该双端栈不满时,,元素x进1号栈(高端栈)操作的语句是()
A、dS->stack[–dS->top[1]]=x;
B、dS->stack[dS->top[1]]=x;dS->top[1]–;
C、dS->top[1]–; dS->stack[dS->top[1]]=x;
D、dS->stack[++dS->top[1]]=x;
参考资料【 】
2、【多选题】已知一个双端栈dStack ,则判断该双端栈栈满的条件是()
A、dStack.top[0]+1= = dStack.top[1]
B、dStack.top[0] = = dStack.top[1]
C、dStack.top[0]-1= = dStack.top[1]
D、dStack.top[0] = = dStack.top[1]-1
参考资料【 】
3、【判断题】已知一个双端栈的地址为dS,则该双端栈不空时,1号栈(高端栈)出栈操作的语句是x= dS-stack[dS-top[1]–]()
A、正确
B、错误
参考资料【 】
第4讲随堂测验
1、【单选题】已知带头结点的链栈top, 则该链栈不空时, 出栈操作的语句是( )
A、top->next=top->next->next; *x=top->next->data;
B、*x=top->next->data; top->next=top->next->next; free(top->next);
C、*x=top ->data;p=top;top =p->next;free§;
D、*x=top->next->data;p=top->next;top->next=p->next;free§;
参考资料【 】
2、【单选题】已知带头结点的链栈top, 则该链栈为空的条件是( )
A、topNULL
B、top->next= =NULL
C、top->next->next= =NULL
D、top->next= =top
参考资料【 】
3、【单选题】已知带头结点的链栈top, 则元素x对应的新结点s进栈操作的语句是()
A、s->next=top->next;top->next=s;
B、top->next=s; s->next=top->next;
C、s->next=top;top =s;
D、top =s; s->next=top;
参考资料【 】
第5讲 栈的应用
1、【单选题】在括号匹配算法中,当正扫描检测的符号是右括号,此时的栈是空栈,则()。
A、右括号进栈;
B、继续向下扫描;
C、取出栈顶元素做匹配检查;
D、此时出现“右括号多了”的不匹配现象。
参考资料【 】
2、【单选题】在算术表达式求值的算法中,若当前正扫描的符号是运算符s,且s的优先级比运算符栈栈顶元素的优先级高,则( )
A、运算符栈出栈,运算数出栈,做运算;
B、s 进运算符栈;
C、取运算符栈栈顶,运算数栈顶,做运算;
D、s 进运算数栈;
参考资料【 】
3、【填空题】在括号匹配算法中,当正扫描的符号是左括号时,则该做左括号( )。
A、
参考资料【 】
第6讲随堂测验
1、【多选题】递归进层(i→i +1层)系统需要做三件事是( )
A、保留本层参数与返回地址;
B、保留下层参数和函数地址;
C、为被调用函数的局部变量分配存储区,给下层参数赋值;
D、将程序转移到被调函数的入口。
参考资料【 】
2、【多选题】从被调用函数返回调用函数之前,递归退层(i←i +1层)系统也应完成三件工作是( )
A、保存被调函数的计算结果;
B、释放被调函数的数据区,恢复上层参数;
C、保存返回上层函数的地址;
D、依照被调函数保存的返回地址,将控制转移回调用函数。
参考资料【 】
3、【判断题】递归是指在定义自身的同时又出现了对自身的引用。( )
A、正确
B、错误
参考资料【 】
4、【填空题】系统需设立一个递归工作栈作为整个递归函数运行期间使用的数据存储区。每层递归所需信息构成一个( )。
A、
参考资料【 】
第三章 单元测验(1)
1、【单选题】栈的特点是( )。
A、先进先出
B、先进后出
C、后进后出
D、没有顺序
参考资料【 】
2、【单选题】队列的特点是( )。
A、先进先出
B、先进后出
C、后进先出
D、没有顺序
参考资料【 】
3、【单选题】栈之说以叫限定性线性表,是因为( )。
A、栈的操作位置受限制
B、栈中的元素类型受限制
C、栈的应用范围受限制
D、栈的存储结构受限制
参考资料【 】
4、【单选题】输入序列为123,若进栈、出栈操作可以交替进行,则不能得到的出栈序列是( )。
A、321
B、312
C、123
D、132
参考资料【 】
5、【单选题】以下会用到栈的应用是( )。
A、递归
B、子程序调用
C、括号匹配
D、以上选项均有可能
参考资料【 】
6、【单选题】循环队列存储在数组A[0…m-1]中,则入队时rear应该变化为( )
A、rear++
B、rear=(rear+1) mod (m-1)
C、rear=(rear+1) mod m
D、rear=(rear+1) mod (m+1)
参考资料【 】
7、【单选题】循环队列A[0…n-1]存放其元素值,F表示队头元素所在的位置,R表示队尾元素的下一个位置。则当前队列中的元素数是( )。
A、(R-F+n)%n
B、R-F+1
C、R-F-1
D、R-F
参考资料【 】
8、【单选题】栈和队列的共同点是( )。
A、都是先进先出
B、都是先进后出
C、只允许在端点处插入和删除元素
D、它们没有共同点
参考资料【 】
9、【单选题】当利用大小为n的数组(下标从1到n)顺序存储一个栈时,假定用topn表示栈空,则每次向这个栈插入一个元素时,首先应执行( )语句修改top指针。
A、top++;
B、top–;
C、top=0;
D、top=n;
参考资料【 】
10、【单选题】设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S。如果每个元素出栈后立即进入队列Q,且7个元素出队的顺序为b,d,e,f,c,a,g,则栈S的容量至少是( )。
A、1
B、2
C、3
D、4
参考资料【 】
11、【单选题】以下属于递归求解问题的前提条件的是( )。
A、原问题可层层分解为子问题,且子问题比原问题规模小
B、子问题的解法与原问题解法相同
C、最小的子问题有解
D、其他选项均是
参考资料【 】
12、【单选题】以下属于消除递归的主要原因是( )。
A、递归程序不容易理解
B、递归程序时空效率较差
C、递归程序容易写错
D、其他选项均是
参考资料【 】
13、【单选题】一个栈的输入序列为123……n,若输出序列的第一个元素是n,输出第i(1=i=n)个元素是( )
A、i
B、n-i
C、n-i+1
D、不确定
参考资料【 】
14、【单选题】凡是元素的保存次序与使用顺序相反的,都可以使用( )。
A、栈
B、队列
C、顺序表
D、链表
参考资料【 】
15、【单选题】若栈采用顺序存储方式存储,现两栈共享空间S[1~N],top[i]代表第i个栈( i =1,2)栈顶。栈1的底在S[1],栈2的底在S[N],则栈满的条件是( )。
A、top[1]+top[2]N
B、top[1]+1top[2]
C、top[1]+top[2]N-1
D、top[2]-top[1]0
参考资料【 】
16、【判断题】消除递归肯定要用到栈,否则无法完成。
A、正确
B、错误
参考资料【 】
17、【判断题】若输入序列为1234,则通过一个栈可以得到输出序列3124。
A、正确
B、错误
参考资料【 】
18、【判断题】若输入序列为1234,则通过栈只能得到4321的输出序列。
A、正确
B、错误
参考资料【 】
19、【判断题】有些问题,比如汉诺塔问题等,只能用递归来解,无法转换成非递归算法。
A、正确
B、错误
参考资料【 】
20、【判断题】顺序栈因为是顺序存储,所以可以随机存取栈中任意元素。
A、正确
B、错误
参考资料【 】
21、【判断题】两顺序栈共享空间,也存在空间溢出问题。
A、正确
B、错误
参考资料【 】
22、【判断题】栈和队列都是限制插入和删除位置的线性结构。
A、正确
B、错误
参考资料【 】
23、【判断题】函数或过程调用需要用到栈。
A、正确
B、错误
参考资料【 】
第7讲随堂测验
1、【多选题】递归算法具有两个特性分别是( )
A、 递归算法求解问题,方法简单。
B、递归算法效率高
C、 递归算法求解问题,方法复杂
D、递归算法的效率较低
参考资料【 】
2、【多选题】下列可以直接用循环结构即可将递归转换为非递归的是( )
A、斐波那契数列问题
B、N!问题
C、汉诺塔问题
D、尾递归问题
参考资料【 】
第8讲随堂测验
1、【单选题】已知带头结点的链队列指针Q,则该队列做新元素结点s进队操作的语句是( )
A、 Q->rear->next=s; Q->rear=s;
B、 s->next=Q->front->next; Q->front->next=s;
C、Q->next=s;Q=s;
D、 s->next=Q->next ;Q->next=s;
参考资料【 】
2、【单选题】已知带头结点的链队列指针Q,则该非空队列取队头元素操作的语句是( )
A、 *x=Q->next->data;
B、 *x=Q->front->data;
C、 *x=Q->front->next->data;
D、 x=Q->rear->data;
参考资料【 】
3、【判断题】队列操作的特性是LIFO。()
A、正确
B、错误
参考资料【 】
4、【判断题】队列允许做插入的一端称为队头,允许删除的一端称为队尾( )
A、正确
B、错误
参考资料【 】
第9讲随堂测验
1、【单选题】已知循环队列Q- element[MAXSIZE],队头指示器为Q-front,队尾指示器为Q-rear(指向真实队尾的下一个位置),则该队列中元素个数为:()
A、 Q->rear-Q->front
B、 Q->rear-Q->front+1
C、(Q->rear-Q->front+ MAXSIZE)% MAXSIZE
D、(Q->rear-Q->front+1+ MAXSIZE)% MAXSIZE
参考资料【 】
2、【单选题】已知循环队列Q- element[MAXSIZE],队头指示器为Q-front,队尾指示器为Q-rear(指向真实队尾的下一个位置),则该队列为空队列的条件为( )
A、 Q->rear= =Q->front
B、 Q->rear+1= =Q->front
C、(Q->rear+1)% MAXSIZE = =Q->front
D、(Q->rear-1)% MAXSIZE = =Q->front
参考资料【 】
3、【单选题】已知循环队列Q- element[MAXSIZE],队头指示器为Q-front,队尾指示器为Q-rear(指向真实队尾的下一个位置),则该队列为满队列的条件为( )(采用少用一个空间的方法)
A、 Q->rear= =Q->front
B、 Q->rear+1= =Q->front
C、(Q->rear+1)% MAXSIZE = =Q->front
D、(Q->rear-1)% MAXSIZE = =Q->front
参考资料【 】
第10讲随堂测验
1、【判断题】在打印杨辉三角形前N行的算法中,需要申请一个NN的二维数组存放杨辉三角形N行数据。()
A、正确
B、错误
参考资料【 】
第三章 单元测验(2)
1、【单选题】队列对数据的操作顺序是( )。
A、先进先出
B、先进后出
C、随机存取
D、其余三个均正确
参考资料【 】
2、【单选题】设rear是非空循环单链表的尾指针,则删除表中第一个元素结点的操作可表示为( )(该链表不带头结点)。
A、p=rear->next; rear->next=p->next; free§;
B、p=rear->next;free§;rear->next=p->next;
C、free(rear->next); rear->next=rear->next->next;
D、p=rear->next;free§;rear->next=rear->next;
参考资料【 】
3、【单选题】设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S(进栈和出栈可交替进行)。如果每个元素出栈后立即进入队列Q,且7个元素出队的顺序为b,d,e,f,c,a,g,则栈S的容量至少是( )。
A、1
B、2
C、3
D、4
参考资料【 】
4、【单选题】以下应用可能会用到栈的是( )。
A、递归调用
B、表达式求值
C、函数调用
D、其余三个资料均正确
参考资料【 】
5、【单选题】一个队列的元素入队顺序是1,2,3,4,则出队顺序为( )。
A、1,2,3,4
B、4,3,2,1
C、2,1,3,4
D、3,4,2,1
参考资料【 】
6、【单选题】某循环队列用数组A[0…n-1]表示,指示器为front指向队头元素,指示器rear指向队尾后的空单元。则当前队列中的元素个数为( )。
A、(rear-front+n)%n
B、rear-front
C、(rear-front+n+1)%n
D、(rear-front+n-1)%n
参考资料【 】
7、【单选题】以下函数的功能是( )。void fun(Queue *Q){ Stack S; int d; InitStack(S); while(!EmptyQueue(*Q)) { DeleteQueue(Q,d); Push(S, d); } while(!EmptyStack(S)){ Pop(S,d); EnterQueue(Q,d); }}
A、将队列Q中的元素逆置。
B、将队列Q中的元素放入栈中。
C、将队列Q中的元素放入栈中,然后再从栈中取出来放入队列中。
D、删除队列Q中的元素
参考资料【 】
8、【判断题】栈和队列都是限制存取位置的线性结构。
A、正确
B、错误
参考资料【 】
9、【判断题】循环队列用数组A[0…n-1]表示,则入队时的队尾指针变换语句为:rear=(rear+1)%n;
A、正确
B、错误
参考资料【 】
10、【判断题】一般的缓冲区用队列做为数据结构。
A、正确
B、错误
参考资料【 】
11、【判断题】循环队列因为是顺序存储,因此可以随机存取。
A、正确
B、错误
参考资料【 】
12、【判断题】判断表达式中的括号是否匹配,采用队列数据结构最佳。
A、正确
B、错误
参考资料【 】
第1讲随堂测验
1、【单选题】设s=‘abcd’,s1=‘123’,则执行语句StrInsert( s,2,s1)后,s= .
A、‘123abcd’
B、‘a123bcd’
C、‘ab123cd’
D、‘abc123d’
参考资料【 】
2、【单选题】设s=‘abcd’,则执行语句StrDelete( s,2,2)后,s= .
A、‘abcd’
B、‘abc’
C、‘ad’
D、‘a’
参考资料【 】
第2讲随堂测验
1、【填空题】假设主串S=‘aaabbbababaabb’,模式串T=‘abaa’,用串匹配算法从主串的第6个字符开始模式匹配,需要做 趟匹配,方能找到匹配串。
A、
参考资料【 】
2、【填空题】假设主串S=‘aaabbbababaabb’,模式串T=‘abaa’,用串匹配算法从主串的第6个字符开始模式匹配,在第2趟匹配中,要做 次比较。
A、
参考资料【 】
第3讲随堂测验
1、【单选题】用带头结点的单链表来表示串s,则串s 为空串的条件是( )
A、s->nextNULL
B、sNULL
C、s->nexts
D、s->next->nextNULL
参考资料【 】
随堂测验
1、【单选题】假设有6行8列的二维数组A(下标从1开始),每个元素占用6个字节,存储器按字节编址。已知A的基地址为1000 ,计算按行存储时元素A36的地址是 ;
A、1126
B、1138
C、1192
D、无法确定
参考资料【 】
2、【单选题】假设有6行8列的二维数组A(下标从1开始),每个元素占用6个字节,存储器按字节编址。已知A的基地址为1000 ,计算按列存储时元素A36的地址是 ;
A、1192
B、1126
C、1138
D、无法确定
参考资料【 】
随堂测验
1、【单选题】已知一个n行n列的三对角带状矩阵A,其中非零元素的个数是( )。
A、3n-2
B、3n+2
C、3n
D、nn
参考资料【 】
2、【单选题】若将n阶上三角矩阵A按列优先压缩存放在一维数组B中,第一个非零元素存放在B[0]中,则非零元素aij存放在B[k]中,则k=( )。
A、
B、
C、
D、
参考资料【 】
第3讲随堂测验
1、【单选题】对稀疏矩阵进行压缩存储的目的是( )
A、便于进行矩阵运算
B、便于输入和输出
C、节省存储空间
D、减低运算的时间复杂度
参考资料【 】
2、【单选题】稀疏矩阵压缩存储后,不会失去( )功能输入输出
A、顺序存储
B、随机存取
C、输入输出
D、输入输出
参考资料【 】
第4讲随堂测验
1、【填空题】对于一个m行n列的稀疏矩阵中有len个非零元素,则用十字链表存储时,需要( )个头指针。
A、
参考资料【 】
2、【填空题】对于一个m行n列的稀疏矩阵中有len个非零元素,则用十字链表存储时,需要( )个三元组结点。
A、
参考资料【 】
第5讲随堂测验
1、【判断题】任意一个广义表都可以表示为由表头和表尾构成( )。
A、正确
B、错误
参考资料【 】
2、【判断题】非空的广义表的表尾可能是单个元素也可能是表元素( )。
A、正确
B、错误
参考资料【 】
3、【填空题】已知广义表L=(( x,y,z), a,( u,t,w)),则head( head( tail( tail( L))))的结果是( )。
A、
参考资料【 】
4、【填空题】已知数组M[ 1 …10 ,-1 …6 ,0 …3 ], )若数组以行序为主序存储,起始地址为1 000 ,且每个数据元素占用3个存储单元,则M[ 2 ,4 ,2 ]的地址为( )
A、
参考资料【 】
第1讲随堂测验
1、【单选题】树最适合用来表示( )
A、有序数据元素
B、无序数据元素
C、元素之间具有分支层次关系的数据
D、元素之间无联系的数据
参考资料【 】
2、【填空题】若一棵树的广义表法表示为:A(B(E,F),C(G(H,I,J,K),L),D(M(N)))则该树的度为( );
A、
参考资料【 】
3、【填空题】若一棵树的广义表法表示为:A(B(E,F),C(G(H,I,J,K),L),D(M(N)))该树的深度为( );
A、
参考资料【 】
4、【填空题】若一棵树的广义表法表示为:A(B(E,F),C(G(H,I,J,K),L),D(M(N)))该树中叶子结点的个数为:( )
A、
参考资料【 】
第2讲随堂测验
1、【单选题】按照二叉树的定义,具有3个结点的二叉树有( )种
A、3
B、4
C、5
D、6
参考资料【 】
2、【单选题】若一棵二叉树有10个度为2的结点,5个度为1的结点,则度为0的结点有( )个。
A、9
B、11
C、15
D、不确定
参考资料【 】
3、【单选题】一个高度为h的完全二叉树至少有( )个结点
A、
B、
C、
D、
参考资料【 】
4、【判断题】二叉树就是结点度不大于2的树。()
A、正确
B、错误
参考资料【 】
5、【判断题】不存在这样的二叉树:它有n个度为0的结点,n-1个度为1的结点,n-2个度为2的结点。( )
A、正确
B、错误
参考资料【 】
6、【填空题】具有n个结点的二叉树采用二叉链表存储结构,共有( )非空的指针域。
A、
参考资料【 】
7、【填空题】拥有100个结点的完全二叉树的最大层数是( )
A、
参考资料【 】
第3讲随堂测验
1、【单选题】某二叉树的先序序列和中序序列正好相同,则该二叉树一定是( )
A、空树或只有一个结点
B、完全二叉树
C、每个结点都没有左子
D、高度等于其结点数
参考资料【 】
2、【单选题】在二叉树中,p所指向的结点为度为1的分支点的条件是( )
A、p->lchild= =NULL ||p->rchild= =NULL
B、!( p->lchild! =NULL &&p->rchild!=NULL)
C、!(p->lchild= =NULL &&p->rchild= =NULL)
D、(p->lchild= =NULL &&p->rchild! =NULL)|| (p->lchild! =NULL &&p->rchild= =NULL)
参考资料【 】
3、【判断题】已知二叉树的先序和后序遍历序列可以唯一确定该二叉树。( )
A、正确
B、错误
参考资料【 】
第六章 单元测验1
1、【单选题】已知一算术表达式的中缀形式为 A-B/C+DE,前缀形式为±A/BCDE,其后缀形式为( )。
A、 ABCDE/-+
B、AB/C-DE+
C、ABC/-DE+
D、 A-BC/DE*+
参考资料【 】
2、【单选题】有关二叉树下列说法正确的是( )。
A、二叉树中每个结点的度都为2
B、一棵二叉树的度可以小于2
C、二叉树中至少有一个结点的度为2
D、二叉树中任何一个结点的度都为2
参考资料【 】
3、【单选题】在一棵高度为k的满二叉树中,结点总数为( )。
A、-1
B、2k
C、
D、
参考资料【 】
4、【单选题】某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为( )。
A、59
B、60
C、61
D、不确定
参考资料【 】
5、【单选题】100个结点的完全二叉树采用顺序存储,从1开始按层次编号,则编号最小的叶子结点的编号应该是( )。
A、100
B、49
C、50
D、51
参考资料【 】
6、【单选题】高度为7的完全二叉树,最少有( )个结点。
A、64
B、127
C、63
D、128
参考资料【 】
7、【单选题】高度为7的二叉树,最少有( )个结点。
A、7
B、13
C、64
D、127
参考资料【 】
8、【单选题】对任意一棵有n个结点的树,这n个结点的度之和为( )。
A、n-1
B、n
C、n+2
D、2*n
参考资料【 】
9、【判断题】完全二叉树一定存在度为1的结点。
A、正确
B、错误
参考资料【 】
10、【判断题】完全二叉树中,若一个结点没有左孩子,则它必是叶子。
A、正确
B、错误
参考资料【 】
11、【判断题】二叉树只能用二叉链表表示。
A、正确
B、错误
参考资料【 】
12、【判断题】树形结构中,每个元素都有一个前驱,0个或多个后继。
A、正确
B、错误
参考资料【 】
第4讲随堂检测
1、【单选题】设二叉树采用二叉链表方式存储,root指向根结点,r所指结点为二叉树中任一给定的结点。则可以通过改写( )算法,求出从根结点到结点r之间的路径。
A、先序遍历
B、中序遍历
C、后序遍历
D、层次遍历
参考资料【 】
2、【多选题】已知二叉树用二叉链表存储,则若实现二叉树实现左右子树交换,可以借助改写( )遍历算法实现。
A、先序遍历
B、中序遍历
C、后序遍历
D、以上三种都可以
参考资料【 】
第5讲随堂测验
1、【单选题】在中序遍历非递归算法中,在进入子树进行访问前,需要在自定义栈中保存( )
A、本层根结点指针
B、本层根结点的右孩子指针
C、本层根结点的左孩子指针
D、无需保留任何信息
参考资料【 】
第6讲随堂测验
1、【单选题】引入线索二叉树的目的是( )
A、加快查找指定遍历过程中结点的直接前驱和直接后继
B、为了能在二叉树中方便地插入和删除结点
C、为了方便找到结点的双亲
D、使二叉树遍历结果唯一
参考资料【 】
2、【单选题】若判断线索二叉树中的p结点有右孩子结点则下列()表达式为真。
A、p!=NULL
B、p->rchild!=NULL
C、p->rtag= =0
D、p->rtag= =1
参考资料【 】
3、【单选题】若线索二叉树中的p结点没有左孩子结点则下列( )表达式为真。
A、pNULL
B、p->lchildNULL
C、p->ltag= =0
D、p->ltag= =1
参考资料【 】
第7讲随堂测验
1、【单选题】一棵二叉树的后序序列是:CBEFDA,中序序列是:CBAEDF,则该二叉树的先序序列是( )
A、ABCDEF
B、ABCEDF
C、ABDEFC
D、ABFECD
参考资料【 】
2、【单选题】一棵二叉树的先序序列是:CEDBA,中序序列是:DEBAC ,则该二叉树的后序序列是( )
A、DABEC
B、DCBAE
C、DEABC
D、CBADE
参考资料【 】
第8讲随堂测验
1、【单选题】如图所示的二叉树BT是由森林T1转换而来的二叉树,那么森林T1中有( )叶子结点。<img src="http://nos.netease.com/edu-image/365A12AF8BBBA3061A0C97B299C2B87C.JPG?imageView
A、4
B、5
C、6
D、7
参考资料【 】
2、【填空题】与树等价的二叉树,根没有( )子树。
A、
参考资料【 】
第9讲随堂测验
1、【单选题】有13个叶子结点的哈夫曼树,该树中结点总数为( )
A、13
B、26
C、12
D、25
参考资料【 】
2、【判断题】在哈夫曼树中,权值相同的叶子点一定在同一层上。( )
A、正确
B、错误
参考资料【 】
3、【判断题】在哈夫曼树中,权值较大的叶子点一般离根比较近。( )
A、正确
B、错误
参考资料【 】
4、【填空题】若以{4,5,6,7,8}作为叶子点构造哈夫曼树,则其带全路径长度为( )
A、
参考资料【 】
第10讲随堂测验
1、【判断题】在哈夫曼编码中,当两个字符出现的频率相等时,则两个字符的哈夫曼编码也相同。( )
A、正确
B、错误
参考资料【 】
第六章 单元测验2
1、【单选题】已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( )。
A、CBEFDA
B、FEDCBA
C、CBEDFA
D、不确定
参考资料【 】
2、【单选题】线索二叉树中,判断p所指向的结点为叶子结点的条件是( )。
A、p->LCNULL && p->RCNULL
B、p->LTag1
C、p->LCNULL && p->LTag0
D、p->LTag0 && p->RTag0
参考资料【 】
3、【单选题】以下属于前缀编码的是( )。
A、{0,1,01,010,110}
B、{00,01,10,11,101}
C、{0,1101,1110,1100,1111}
D、{01,00,10,001,110,101}
参考资料【 】
4、【单选题】在下列存储形式中,( )不是树的存储形式。
A、双亲表示法
B、孩子链表表示法
C、孩子-兄弟表示法
D、顺序存储表示法
参考资料【 】
5、【单选题】对二叉树中的结点进行编号,要求根结点的编号最小,左孩子结点编号比右孩子结点编号小。则应该采用( )遍历方法对其进行编号。
A、先序
B、中序
C、后序
D、层次
参考资料【 】
6、【单选题】已知某二叉树的后序遍历序列是CEFDBA,中序遍历序列是CBEDFA。与该二叉树对应的树或森林中,叶子的数目是( )个。
A、1
B、2
C、3
D、4
参考资料【 】
7、【单选题】某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为( )。
A、59
B、60
C、61
D、不一定
参考资料【 】
8、【单选题】某二叉树的逻辑结构如下图所示,则其扩展先序序列为( )。
A、AB
B、DF
C、
D、
E、C
F、E
G、
H、(
I、表示空)
J、AB
K、DF
L、
M、
N、C
O、E(
P、表示空)
Q、ABDFCE
R、ABCDEF
参考资料【 】
9、【单选题】树的后根遍历,相当于对应二叉树的( )遍历。
A、中序
B、先序
C、后序
D、层次
参考资料【 】
10、【判断题】哈夫曼树的带权路径长度等于其中所有结点的带权路径之和。
A、正确
B、错误
参考资料【 】
11、【判断题】给定二叉树的先序、中序和后序遍历序列中的任意两个,就可以唯一确定一棵二叉树。
A、正确
B、错误
参考资料【 】
12、【判断题】在叶子数目和权值相同的所有二叉树中,带权路径长度最小的树一定是哈夫曼树。
A、正确
B、错误
参考资料【 】
13、【判断题】将一棵树转成二叉树,根结点一定没有右子树。
A、正确
B、错误
参考资料【 】
14、【填空题】有10个叶子结点的哈夫曼树,总结点个数是 。
A、
参考资料【 】
15、【填空题】将一棵树转换为二叉树时,遵循的规则是左孩子、 。
A、
参考资料【 】
16、【填空题】用权值{1,2,3,4,5}构造一棵哈夫曼树,则该树的带权路径长度为 。
A、
参考资料【 】
17、【填空题】假设T是一棵高度为5的二叉树,T中只有度为0和度为2的结点,那么T树最少应该有 个结点。
A、
参考资料【 】