①必需是联系的 ②部分地址必须是连续的
③一定是不连续的 ④连续不连续都可以
34.设REAR是指向非空带头结点的循环单链表的尾指针,则删除表首结点的操作可表示为( )
①p=rear; ②rear=rear->next; rear=rear->next; free(rear); free(p)
③rear=rear->next->next; ④ p=rear->next->next;
free(rear); rear->next->next=p->next;
free(p); 35. 单链表中,增加头结点的目的是为了 ( )
①使单链表至少有一个结点 ②标示表结点中首结点的位置
③方便运算的实现 ④说明单链表是线性表的链式存储实现 36线性结构中的一个结点代表一个数据元素,通常要求同一线性结构的所有结点所代表的数据元素具有相同的特性,这意味着
① 每个结点所代表的数据元素都一样。
② 每个结点所代表的数据元素包含的数据项的个数要相等
③ 不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一
致
④ 结点所代表的数据元素有同一特点 37.带头结点的单链表Head为空的判定条件是
①Head=Null ②Head->next=NULL ③Head->next=Head 38.非空的单循环链表L的尾结点*P,满足
P->next=NULL P=NULL P->next=L P=L. 39.双向链表结点结构如下: LLink data RLink 其中:LLink是指向前驱结点的指针域:
data是存放数据元素的数据域; Rlink是指向后继结点的指针域。
下面给出的算法段是要把一个新结点*Q作为非空双向链表中的结点*p的前驱,插入到此双向链表中。不能正确完成要求的算法段是 ①Q->LLink=P->LLink; ②P->LLink=Q; Q->Rlink=P; Q->Rlink=P;
P->LLink=Q; P->LLink->Rlink=Q; P->LLink->Rlink=Q; Q->LLink=P->LLink; ③Q->LLink=P->LLink; Q->Rlink=P;
P->LLink->Rlink=Q;
P->LLink=Q;
40.若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省时间。
①顺序表 ②单链表 ③双链表 ④单循环链表 1.在以下栈的基本运算中,不是加工型运算的是 ( )
①lnitStack(S) ②Push(S,X) ③Pop(S) ④empty(S) 2.以下说法正确的是 ( )
①因链栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况 ②因顺序栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况
③对于链栈而言,在栈满状态下,如果此时再作进栈运算,则会发生“上溢” ④对于顺序栈而言在栈满状态下如果此时再作迸栈运算,则会发生“下溢”。
3.在以下队列的基本运算中,不是加工型运算的是 ( )
①InitQueue(Q) ②EnQueue(Q,X) ③OutQueu(Q,X) ④GetHead(Q,x) 4.顺序队列的人队操作应为 ( )
①sq.rear=sq.rear+1 sq.data[sq.rear]=x ②sq.data[sq.rear]=x sq.rear=sq.rear+1 ③sq.rear=(sq.rear+1)% maxsize; sq.data[sq.rear]=x ④sq.data[sqrear]=x sq.rear=(sq.rear+1)% maxsize
5.循环队列的人队操作应为 ( )
①sq.rear=sq.rear+1 sq.data[sq.rear]=x ②sq.data[sq.rear]=x sq.rear=sq.rear+1 ③sq.rear=(sq.rear+1)% maxsize sq.data[sq.rear]=x ④sq.data[sq.rear]=x sq.rear=(sq.rear+1)% maxsize
6. 顺序队列的出队操作为 ( )
①sq.front=(sq.front+1)% maxsize ②sq.front=sq.front+1 ③sq.rear=(sq.rear+1)% maxsize ④sq.rear=sq.rear+1
7. 循环队列的出队操作为 ( )
①sq.front=(sq.ftont+1)% maxsize ②sq.front=sq.front+1
③sq.rear=(sq.rear+)% maxsize ④sq.rear=sq.rear+1
8.循环队列的队满条件为 ( )
①(sq.rear+1) % mazsize ==(sq.front+1) % maxsize;
②(sq.rear+1 % maxsize ==sq.front+1 ③sq.(rear+1) % maxsize ==sq.front ④sq.rear ==sq.front
9.循环队列的队空条件为 ( )
①(sq.rear+1) % maxsize ==(sq.front+1) % maxsize ②(sq.rear+) % maxsize ==sq.front+1 ③(sp.rear+1) % maxsize ==sq.front ④sq.rear == sq.front
12.如果以链表作为栈的存储结构,则退栈操作是 ( )
①必须判别栈是否满 ②必须判别栈是否空 ③判别栈元素的类型 ④对栈不做任何操作 14.设C语言数组Data[m+1]作为循环队列SQ的存储空间, front为队头指针,
rear为队为指针,则执行出队操作的语句为 ( )
①front=front+1 ② front=(front+1)%m ③rear=(rear+1)%m ④ front=(front+1)%(m+1)
15.设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4, s6 , s5,s1,则栈的容量至少应该是 ( )
①2 ② 3 ③ 5 ④6
16.设有一顺序栈已含3个元素,如下图所示,元素a4正等待进栈。那么下列4个序列中不可能出现的出栈序列是 ( )
a1 a2 a3
0 1 2 3 maxsize-1
sq↑top
①a3,a1,a4,a2 ②a3,a2,a4,a1 ③ a3,a4,a2,a1 ④a4,a3,a2,a1
17.向一个栈顶指针为Top的链中插入一个s所指结点时,其操作步骤为 ( ) ①Top->next=s ② s->next=Top->next;Top->next=s ③s->next=Top;Top=s ④ s->next=Top;Top=Top->next
18.从栈顶指针为Top的链栈中删除一个结点,并将被删节点的值保存到x中,其操作步骤为( )
①x=Top->data;Top=Top->next ②Top=Top->next;x=Top->data ③x=Top;Top=Top->next ④ x=Top->data
19.在一个链队中,若f,r分别为队首、队尾指针,则插入s所指结点的操作为( )
①f->next=c;f=s ②r->next=s;r=s ③s->next=r;r=s ④ s->next=f;f=s 20.链栈与顺序栈相比,有一个比较明显的优点即 ( )
①插入操作更方便 ② 通常不会出现栈满的情况 ③不会出现栈空的情况 ④ 删除操作更方便
22.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )
① e d c b a ②d e c b a ③d c e a b ④a b c d e
23. 一个队列的人列序列是1,2,3,4,则队列的输出系列是( )
① 4,3,2,1 ② 1,2,3,4, ③1,4,3,2 ④ 3,2,4,1
24.设计一个判别表达式中左、右括号是否配对出栈的算法,采用( )数据结构最佳。
①线性标的顺序存储结构 ②栈
③ 队列 ④ 线性表的链式存储结构
25.若已知一个栈的输入序列为1,2,3,...,n, 其输出序列为P1、P2、...Pn。若
p1=n,则Pi为
①i ②n=i ③ n-i+1 ④ 不确定
26.以下说法正确的是
①顺序队和循环队的队满和队空判断条件是一样的 ②栈可以作为实现过程调用的一种数据结构
③插人和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用
④在循环队列中,front指向队列中第一个元素的前一位置,rear指向实际的队尾元素,队列为满的条件front=rear 1. 以下说法错误的是 ( )
①树形结构的特点是一个结点可以有多个直接前趋 ②线性结构中的一个结点至多只有一个直接后继 ③树形结构可以表达(组织)更复杂的数据
④树(及一切树形结构)是一种\分支层次\结构 ⑤任何只含一个结点的集合是一棵树 2,以下说法错误的是 ( ) ①二叉树可以是空集
②二叉树的任一结点都有两棵子树 ③二叉树与树具有相同的树形结构
④二叉树中任一结点的两棵子树有次序之分
3、以下说法错误的是 ( )
①完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达 ②在三叉链表上,二叉树的求双亲运算很容易实现 ③在二叉链表上,求根,求左、右孩子等很容易实现 ④在二叉链表上,求双亲运算的时间性能很好 5.深度为6的二叉树最多有( )个结点. ①64 ②63 ③32 ④31
6.将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双结点编号为( ) ①42 ②40 ③21 ④20
7.任何一棵二叉树的叶结点在其先根、中根、后跟遍历序列中的相对位置 ( ) ①肯定发生变化 ②有时发生变化 ③肯定不发生变化 ④无法确定
8.设二叉树有n个结点,则其深度为 ( ) ①n-1 ②n ③5floor(log2n) ④无法确定
9.设深度为k的二叉树上只有度为0和度为2的节点,则这类二叉树上所含结点总数最少( )个
①k+1 ②2k ③2k-1 ④2k+1 11.下列说法中正确的是 ( )
①任何一棵二叉树中至少有一个结点的度为2
②任何一棵二叉树中每个结点的度都为2 ③任何一棵二叉树中的度肯定等于2 ④任何一棵二叉树中的度可以小于2 13.设森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,且根结点的右子树上有( )个结点。 ①n1-1 ②n1 ③n1+n2+n3 ④n2+n3+n4
14.森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,且根结点的左孩子上有( )个结点。 ①n1-1 ②n1 ③n1+n2+n3 ④n2+n3+n4
16.讨论树、森林和二叉树的关系,目的是为了( )
①借助二叉树上的运算方法去实现对树的一些运算 ②将树、森林按二叉树的存储方式进行存储 ③将树、森林转换成二叉树
④体现一种技巧,没有什么实际意义
30、下列说法中正确的是 ( ) ①二叉树中任何一个结点的度都为2 ②二叉树的度为2
③任何一棵二叉树中至少有一个结点的度为2 ④一棵二叉树的度可以小于2 31、设二叉树根结点的层次为0,一棵高度为h的满二叉树中的结点个数是( )