




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论习题课对于给定的n个元素,可以构造出的逻辑结构有( )、( )、( )、( )四种。答案:集合线性结构树形结构图结构1. 数据的逻辑结构在计算机存储中的映像(或表示)通常有几种方法?a) 顺序映像和非顺序映像2. 线性结构和树性结构的特点分别是什么?a) 结构中的数据元素之间存在一个对一个的关系b) 结构中的数据元素之间存在一个对多个的关系3. 2. 计算机算法必须具备输入、输出、( )等5个特性。A.可行性、可移植性和可扩展性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性 D.易读性、安全性和稳定性B5. 算法在发生非法操作时可以作出处理的特性称为( )A.正确性 B.易读性 C.健壮性 D.可靠性C6.数据结构是一门研究非数值计算的程序设计问题中计算机的( )以及它们之间的( )和运算的学科。第一空 A.操作对象 B.计算方法 C.逻辑存储 D.数据映像第二空 A.结构 B.关系 C.运算 D.算法A B7.在数据结构中,逻辑上数据结构可分为:( )A.动态结构和静态结构 B.线性结构和非线性结构C.紧凑结构和非紧凑结构 D.内部结构和外部结构q B8.数据结构主要研究数据的( )A.逻辑结构 B.存储结构 C.逻辑结构和存储结构 D.逻辑结构和存储结构及其运算的实现q D9.下面的程序段违反了算法的( )原则void sam()q int n=2;q while (!odd(n) n+=2;q printf(n);q n A.有穷性 B.确定性 C.可行性 D.健壮性n A线性表习题课1.在一个单链表中,若删除P结点的后继结点,则()A.p-next=p-next-next B.p=p-next;p-next=p-next-next;C.p-next=p-next;D.p=p-next-next;A2.试比较顺序存储结构和链式存储结构的优缺点。在什么情况下用顺序表比链表好? 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。n 优点:存储密度大(1?),存储空间利用率高。缺点:插入或删除元素时不方便。链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针n 优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(1),存储空间利用率低。n 顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。n 若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;n 若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。3.描述以下三个概念的区别:头指针、头结点、首元结点(第一个元素结点)。在单链表中设置头结点的作用是什么?n 答:首元结点是指链表中存储线性表中第一个数据元素a1的结点。为了操作方便,通常在链表的首元结点之前附设一个结点,称为头结点,该结点的数据域中不存储线性表的数据元素,其作用是为了对链表进行操作时,可以对空表、非空表的情况以及对首元结点进行统一处理。头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。若链表中附设头结点,则不管线性表是否为空表,头指针均不为空。否则表示空表的链表的头指针为空。这三个概念对单链表、双向链表和循环链表均适用。是否设置头结点,是不同的存储结构表示同一逻辑结构的问题。4.线性表是具有n个( )的有限序列n A.表元素 B.字符 C.数据元素 D.数据项 E.信息项n C5.若语句S的执行时间为O(1),那么下列程序段的时间复杂度为 。n For(i = 0; i = n ; i+)n For(j = 0; j next=q q B) P-next=q; q-next=P-next-next q C) q-next = P-next; P-next:=q q D)P-next=q; q-next=P-next7.用链表表示线性表的优点是 。q A) 便于随机存储 q B) 花费的存储空间较顺序存储少 q C) 便于插入和删除操作 q D) 数据元素的物理顺序与逻辑顺序相同8.设长度为n的顺序线性表在任何位置上插入或删除操作都是等概率的,则插入一个元素时平均需要移动_个元素,删除一个元素时平均需要移动_个元素。n n/2,(n-1)/29.在顺序线性表中插入一个元素时,插入位置开始后的所有元素均需要_移动一个位置。n 向后10.在顺序线性表中删除一个元素时,被删除元素后的所有元素均需要_移动一个位置。n 向前11.线性表的顺序存储结构中逻辑上相邻的元素,物理位置_相邻;线性表的链式存储结构中逻辑上相邻的元素,物理位置_相邻。q 一定,不一定12.已知单链表的长度为n,则在给定值为x的结点后插入一个新结点的时间复杂度为_。q O(n)13.已知单链表的长度为n,则删除给定值为x的结点的时间复杂度为_。q O(n)14.在单链表中设置头结点的作用是_。q 消除空表的特殊性,统一表示和处理空表和非空表的情形,从而简化插入和删除等操作的某些细节。15.双向链表中每个结点含有两个指针域,其中一个指针域指向_结点,另一个指针域指向_结点。q 前驱,后继16.在长度为n的线性表中顺序查找某个结点值为X的时间复杂度为_。q O(n)17 在长度为n的顺序线性表中删除第i个元素(1=inext=p p=p-next p=p-next-next p-next=p-next-nextn (4)20在长度为n的顺序线性表中的第i个元素(1=irlink=s; s-llink=p; p-rlink-llink=s; s-rlink=p-rlink;n s-llink=p; s-rlink=p-rlink; p-rlink=s; p-rlink-llink=s;n p-rlink=s; p-rlink-llink=s; s-llink=p; s-rlink-p-rlink;n s-llink=p; s-rlink=p-rlink; p-rlink-llink=s; p-rlink=s;q (4)23指针p指向双向链表中的结点A,则删除结点A的操作是( )。q p-llink-rlink=p-rlink; p-rlink-llink=p-llink;q p-rlink-llink=p-rlink; p-llink-llink=p-llink;q p-llink-rlink=p-llink; p-rlink-llink=p-rlink;q p-rlink-rlink=p-rlink; p-rlink-rlink=p-rlink;q (1)24设head为单链表的头指针,则不带头结点的单链表为空的判定条件是( )。n head=NULLn head-next=NULLn head-next=headn head!=NULLn (1)25设head为单链表的头指针,则带头结点的单链表为空的判定条件是( )。n head=NULLn head-next=NULLn head-next=headn head!=NULLn (2)26设head和tail分别为单向循环链表的头指针和尾指针,则下列等式成立的是( )。n head=tailn head-next=tailn tail-next=headn head-next=tail-nextn (3)27.循环链表的主要优点是( )n A.不再需要头指针了 n B.已知某个结点的位置后,能很容易找到它的直接前驱结点n C.在进行删除操作后,能保证链表不断开n D.从表中任一结点出发都能遍历整个链表q D28.已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。n a. 在P结点后插入S结点的语句序列是_。n b. 在P结点前插入S结点的语句序列是_。n c. 在表首插入S结点的语句序列是_。d. 在表尾插入S结点的语句序列是_(1) P-next=S;(2) P-next=P-next-next;(3) P-next=S-next;(4) S-next=P-next;(5) S-next=L;(6) S-next=NULL;(7) Q=P; (8) while(P-next!=Q) P=P-next;(9) while(P-next!=NULL) P=P-next;(10) P=Q;(11) P=L;(12) L=S;(13) L=P;a. (4) (1)b. (7) (11) (8) (4) (1) c. (5) (12) d. (9) (1) (6)13章习题栈和队列习题1.线性表、栈和队列从逻辑上来说都是_结构。可以在线性表的_位置插入和删除元素;对于栈只能在_插入和删除元素;对于队列只能在_插入元素和在_删除元素。n 线性,任何,栈顶,队尾,队头2.栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为_表;队列的插入和删除运算分别在队列的两端进行,进行插入的一端叫做_,进行删除的一端叫做_,先进队的元素必定先出队,所以又把队列称为_表。n 先进后出(FILO),队尾,队头,先进先出(FIFO)3.假设用向量S1:m来存储顺序栈,指针top指向当前栈顶的位置。则当栈为空时满足的条件是_;当栈为满时满足的条件是_。n top=0,top=m4.设有一个空栈,现有输入序列1、2、3、4、5,经过push、push、pop、push、pop、push、push、pop、pop、 pop后,输出序列为_。n 235415.在一个顺序循环队列中为了方便入队列和出队列的操作通常约定头指针front指向实际队头元素的_,尾指针rear指向当前实际队尾元素的_。若该顺序循环队列有m个存储单元,则队列满时共有_个元素。n 前一个位置,所在位置,m-1n 分析:在顺序循环队列中约定头指针front和尾指针rear所指向的位置,是牺牲掉一个存储单元而方便表示队列空和队列满的条件,因此顺序循环队列中实际可用的存储单元只有m-1个6.设有一个顺序循环队列如上题中的约定,则该队列满的条件是_,队列空的条件是_。n (rear+1)%m=front,rear=front7.不论是顺序栈(队列)还是链式栈(队列),插入(删除)运算的时间复杂度均为_。n O(1)8.系统在函数调用前自动把调用后的_压入堆栈;当函数调用结束后,系统又自动作退栈处理,并将程序执行流程无条件转移到所保存的_处继续执行。n 返回地址,返回地址9设元素进栈次序为A、B、C、D、E,则下列不可能的出栈序列是( )。n ABCDE BCDEA EABCD EDCBAn (3)10设用一维数组sm表示栈的存储空间,用top指向当前栈顶元素(其初始值为-1),则进行出栈时的操作序列是( )。n x=sop; x=stop;top=0;n x=stop;top=top-1;n x=stop;top=top+1;n (3)11.设指针hs指向栈顶,指针s指向插入的结点A,则插入结点A时的操作为( )。n hs-next=s; s-next=hs; hs=s;n s-next=hs-next; hs-next=s; s-next=hs; hs=hs-next;n (2)12设用一维数组sm表示栈的存储空间,用top指向当前栈顶元素(其初始值为-1),则进行入栈时的操作序列是( )。n stop =x; top=top+1;stop=x;n top=top-1;stop=x; stop=x;top=top+1;n (2)13设front是链式队列的头指针,rear是链式队列的尾指针,s指向插入的结点A,则插入结点A的操作为( )。n front-next=s; front=s; s-next=rear; rear=s;n rear-next=s; rear=s; s-next=front; front=s;n (3)14.设front是链式队列的头指针,rear是链式队列的尾指针,则删除队头元素的操作为( )。n front=front-next; rear=rear-next;n rear=front-next; front=rear-next;n (1)15对于一个具有m个存储单元的顺序循环队列,设front为队头指针,rear为队尾指针,则该队列中队列元素的个数计算公式为( )。n rear-front front-rearn (rear-front)%m (rear-front+m)%mn (4)n 分析:顺序循环队列中的元素个数= ,整理合并可写成(rear-front+m)%m。算法设计题1.设有两个顺序栈S1和S2共享一个存储区S0:m-1,为了尽量利用存储空间减少溢出的可能性,采用栈顶相向、迎面增长的存储方式,要求分别设计两个栈的入栈和出栈操作。n 分析:本题算法思想是引入形式参数flag,当形式参数flag的值为1时表示对栈1进行操作,flag的值为2时表示对栈2进行操作。n typedef struct int sm; int top1; int top2; sqstack;n void push(sqstack &stack , int x,int flag)n n if (stack.top1+1=stack.top2) printf(“stack is fulln”);n else n n if (flag=1) stack.top1+; stack.sstack.top1=x;n else if(flag=2)stack.top2-; stack.sstack.top2=x;else printf(“input errorn”);n n n void pop(sqstack &stack , int &y, int flag)n n if (flag=1) n if(stack.top1=m) printf(“emptyn”); else y=stack.sstack.top2;stack.top2-; n else printf(“input errorn”);n 2.设用一个单向循环链表来表示队列(也称循环队列),该队列只设一个队尾指针rear,不设队头指针front,要求设计出该队列的入队列和出队列操作。n 设用一个单向循环链表来表示队列(也称链式循环队列),该队列只设一个队尾指针rear,不设队头指针front,要求设计出该队列的入队列和出队列操作。n typedef struct node int data; struct node *next; lklist;n void inlkqueue(lklist *&rear, int x)n n lklist *p;n p=(lklist *) malloc(sizeof(lklist); p-data=x;n if (rear=0) rear=p; rear-next=rear;else p-next=rear-next; rear-next=p; rear=p;n n void outlkqueue(lklist *&rear, int &y)n n lklist *p;n if (rear=0) printf(“queue is emptyn”);n else if rear-next=rear y=rear-data; rear=0; n else p=rear-next; y=p-data; rear-next=p-next; free(p);n 数组与广义表习题课 数组通常只有两种运算:( )和( ),这决定了数组通常采用( )结构来实现存储。【解答】存取,修改,顺序存储 二维数组A中行下标从10到20,列下标从5到10,按行优先存储,每个元素占4个存储单元,A105的存储地址是1000,则元素A1510的存储地址是( )。【解答】1140 设有一个10阶的对称矩阵A采用压缩存储,A00为第一个元素,其存储地址为d,每个元素占1个存储单元,则元素A85的存储地址为( )。 【解答】d+41【分析】元素A85的前面共存储了(1+2+8)+5=41个元素。 稀疏矩阵一般压缩存储方法有两种,分别是( )和( )。 【解答】三元组顺序表,十字链表 广义表(a), (b),c),(d)的长度是(),深度是(),表头是(),表尾是()。 【解答】3,4,(a),(b),c),(d) 已知广义表LS=(a,(b,c,d),e),用Head和Tail函数取出LS中原子b的运算是( )。 【解答】Head(Head(Tail(LS)选择题 二维数组A的每个元素是由6个字符组成的串,行下标的范围从08,列下标的范围是从09,则存放A至少需要()个字节,A的第8列和第5行共占()个字节,若A按行优先方式存储,元素A85的起始地址与当A按列优先方式存储时的( )元素的起始地址一致。A 90 B 180 C 240 D 540 E 108 F 114 G 54 H A85 I A310 J A58 K A49【解答】D,E,K 将数组称为随机存取结构是因为()A 数组元素是随机的 B 对数组任一元素的存取时间是相等的C 随时可以对数组进行访问 D 数组的存储结构是不定 【解答】B 下面的说法中,不正确的是()A 数组是一种线性结构 B 数组是一种定长的线性结构 C 除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等 D 数组的基本操作有存取、修改、检索和排序等,没有插入与删除操 【解答】C【分析】数组属于广义线性表,数组被创建以后,其维数和每维中的元素个数是确定的,所以,数组通常没有插入和删除操作。 对特殊矩阵采用压缩存储的目的主要是为了() A 表达变得简单 B 对矩阵元素的存取变得简单 C 去掉矩阵中的多余元素 D 减少不必要的存储空间【解答】D 下面()不属于特殊矩阵。 A 对角矩阵 B 三角矩阵 C 稀疏矩阵 D 对称矩阵 【解答】C 若广义表A满足Head(A)=Tail(A),则A为( ) A ( ) B ( ) C ( ),( ) D( ),( ),( ) 【解答】B 下面的说法中,不正确的是() A 广义表是一种多层次的结构 B 广义表是一种非线性结构 C 广义表是一种共享结构 D 广义表是一种递归【解答】B 下面的说法中,不正确的是() A 对称矩阵只须存放包括主对角线元素在内的下(或上)三角的元素即可。 B 对角矩阵只须存放非零元素即可。 C 稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储。 D 稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储【解答】D判断 数组是一种复杂的数据结构,数组元素之间的关系既不是线性的,也不是树形的。 【解答】错。例如二维数组可以看成是数据元素为线性表的线性表。 使用三元组表存储稀疏矩阵的元素,有时并不能节省存储空间。 【解答】对。因为三元组表除了存储非零元素值外,还需要存储其行号和列号。 稀疏矩阵压缩存储后,必会失去随机存取功能。 【解答】对。因为压缩存储后,非零元素的存储位置和行号、列号之间失去了确定的关系。 线性表可以看成是广义表的特例,如果广义表中的每个元素都是单元素,则广义表便成为线性表。 【解答】对。 若一个广义表的表头为空表,则此广义表亦为空表。 【解答】错。如广义表L=( ),(a,b)的表头为空表,但L不是空表。15章习题1.数据的存储结构主要有( )和( )两种基本方法,不论哪种存储结构,都要存储两方面的内容:( )和()。【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系2.算法具有五个特性,分别是( )、( )、( )、( )、( )。【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性3.算法的描述方法通常有( )、( )、( )和( )四种,其中,( )被称为算法语言。【解答】自然语言,程序设计语言,流程图,伪代码,伪代码4. 在顺序表中,等概率情况下,插入和删除一个元素平均需移动( )个元素,具体移动元素的个数与( )和()有关。【解答】表长的一半,表长,该元素在表中的位置5.单链表中设置头结点的作用是( )。【解答】为了运算方便6.非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足( )。【解答】p-next=head7. 在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是( );删除开始结点的操作序列为( )。【解答】s-next =rear-next; rear-next =s; rear =s;q=rear-next-next; rear-next-next=q-next; delete q;8.一个具有n个结点的单链表,在指针p所指结点后插入一个新结点的时间复杂度为( );在给定值为x的结点后插入一个新结点的时间复杂度为( )。【解答】(1),(n)9. 可由一个尾指针唯一确定的链表有( )、( )、( )。【解答】循环链表,循环双链表,双链表10.设有一个空栈,栈顶指针为1000H,现有输入序列为1、2、3、4、5, 经过push,push,pop,push,pop,push,push后,输出序列是( ),栈顶指针为( )。【解答】23,1003H11. 栈通常采用的两种存储结构是( );其判定栈空的条件分别是( ),判定栈满的条件分别是( )。【解答】顺序存储结构和链接存储结构(或顺序栈和链栈),栈顶指针top= -1和top=NULL,栈顶指针top等于数组的长度和内存无可用空间12. 栈和队列是两种特殊的线性表,栈的操作特性是( ),队列的操作特性是( ),栈和队列的主要区别在于()。【解答】后进先出,先进先出,对插入和删除操作限定的位置不同13. 循环队列的引入是为了克服( )。【解答】假溢出14.数组Qn用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为( )。【解答】(rear-front+n)% n15. 用循环链表表示的队列长度为n,若只设头指针,则出队和入队的时间复杂度分别是( )和( )。【解答】(1),(n)【分析】在带头指针的循环链表中,出队即是删除开始结点,这只需修改相应指针;入队即是在终端结点的后面插入一个结点,这需要从头指针开始查找终端结点的地址。16. 串是一种特殊的线性表,其特殊性体现在( )。【解答】数据元素的类型是一个字符17. 两个串相等的充分必要条件是( )。【解答】长度相同且对应位置的字符相等1. 算法指的是( )。A 对特定问题求解步骤的一种描述,是指令的有限序列。B 计算机程序 C 解决问题的计算方法 D 数据处理【解答】A2. 下面( )不是算法所必须具备的特性。A 有穷性 B 确切性 C 高效性 D 可行性【解答】C3. 算法分析的目的是( ),算法分析的两个主要方面是( )。A 找出数据结构的合理性 B 研究算法中输入和输出的关系C 分析算法的效率以求改进 D 分析算法的易读性和文档性E 空间性能和时间性能 F 正确性和简明性G 可读性和文档性 H 数据复杂性和程序复杂性【解答】C,E4. 线性表采用链接存储时,其地址( )。A 必须是连续的 B 部分地址必须是连续的C 一定是不连续的 D 连续与否均可以【解答】D5. 单循环链表的主要优点是( )。A 不再需要头指针了B 从表中任一结点出发都能扫描到整个链表;C 已知某个结点的位置后,能够容易找到它的直接前趋;D 在进行插入、删除操作时,能更好地保证链表不断开。【解答】B6. 链表不具有的特点是( )。A 可随机访问任一元素 B 插入、删除不需要移动元素C 不必事先估计存储空间 D 所需空间与线性表长度成正比【解答】A7.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋,则采用( )存储方法最节省时间。A 顺序表 B 单链表 C 双链表 D 单循环链表【解答】A8. 若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则采用( )存储方法最节省时间。A 单链表 B 带头指针的单循环链表 C 双链表 D 带尾指针的单循环链表【解答】D9.若链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用( )存储方法最节省运算时间。A 单链表 B 循环双链表 C单循环链表 D 带尾指针的单循环链表【解答】B10.在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( )。A O(1) B O(n) C O(n2) D O(nlog2n)【解答】B【分析】首先应顺序查找新结点在单链表中的位置。11.对于n个元素组成的线性表,建立一个有序单链表的时间复杂度是( )。A O(1) B O(n) C O(n2) D O(nlog2n)【解答】C12.使用双链表存储线性表,其优点是可以( )。A 提高查找速度 B 更方便数据的插入和删除C 节约存储空间 D 很快回收存储空间【解答】B13. 在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p之间插入s所指结点,则执行( )操作。A s-next=p-next; p-next=s; B q-next=s; s-next=p;C p-next=s-next; s-next=p; D p-next=s; s-next=q;【解答】B14. 在循环双链表的p所指结点后插入s所指结点的操作是( )。A p-next=s; s-prior=p; p-next-prior=s; s-next=p-next;B p-next=s; p-next-prior=s; s-prior=p; s-next=p-next;C s-prior=p; s-next=p-next; p-next=s; p-next-prior=s;D s-prior=p; s-next=p-next; p-next-prior=s; p-next=s【解答】D15. 若一个栈的输入序列是1,2,3,n,输出序列的第一个元素是n,则第i个输出元素是( )。A 不确定 B n-i C n-i-1 D n-i+1【解答】D【分析】此时,输出序列一定是输入序列的逆序。16从栈顶指针为top的链栈中删除一个结点,用x保存被删除结点的值,则执行( )。A x=top; top=top-next; B x=top-data;C top=top-next; x=top-data; D x=top-data; top=top-next;【解答】D17.设S=I_ am_ a_ teacther,其长度为( )。【解答】1518. 设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是( )。A 6 B 4 C 3 D 2【解答】C【分析】由于队列具有先进先出性,所以,此题中队列形同虚设,即出栈的顺序也是e2、e4、e3、e6、e5、e1。19. 一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是( )。A 54321 B 45321 C 43512 D 12345【解答】C20. 设计一个判别表达式中左右括号是否配对的算法,采用( )数据结构最佳A 顺序表 B 栈 C 队列 D 链表【解答】B【分析】每个右括号与它前面的最后一个没有匹配的左括号配对,因此具有后进先出性。21.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个( )结构。A 栈 B队列 C 数组 D线性表【解答】B23.一个队列的入队顺序是1,2,3,4,则队列的输出顺序是( )。A 4321 B 1234 C 1432 D 3241【解答】B【分析】队列的入队顺序和出队顺序总是一致的。24. 栈和队列的主要区别在于( )。A 它们的逻辑结构不一样 B 它们的存储结构不一样C 所包含的运算不一样 D 插入、删除运算的限定不一样 【解答】D25.设数组Sn作为两个栈S1和S2的存储空间,对任何一个栈只有当Sn全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是( )。A S1的栈底位置为0,S2的栈底位置为n-1B S1的栈底位置为0,S2的栈底位置为n/2C S1的栈底位置为0,S2的栈底位置为nD S1的栈底位置为0,S2的栈底位置为1 【解答】A26. 设有两个串p和q,求q在p中首次出现的位置的运算称作( )。A 连接 B 模式匹配 C 求子串 D 求串长 【解答】B 算法的时间复杂度都要通过算法中的基本语句的执行次数来确定。【解答】错。时间复杂度要通过算法中基本语句执行次数的数量级来确定。 每种数据结构都具备三个基本操作:插入、删除和查找。【解答】错。如数组就没有插入和删除操作。此题注意是每种数据结构。 所谓数据的逻辑结构指的是数据之间的逻辑关系。【解答】错。是数据之间的逻辑关系的整体。 逻辑结构与数据元素本身的内容和形式无关。【解答】对。因此逻辑结构是数据组织的主要方面。 基于某种逻辑结构之上的基本操作,其实现是唯一的。【解答】错。基本操作的实现是基于某种存储结构设计的,因而不是唯一的。6. 线性表的逻辑顺序和存储顺序总是一致的。【解答】错。顺序表的逻辑顺序和存储顺序一致,链表的逻辑顺序和存储顺序不一定一致。7.线性表的顺序存储结构优于链接存储结构。【解答】错。两种存储结构各有优缺点。8. 设p,q是指针,若p=q,则*p=*q。【解答】错。p=q只能表示p和q指向同一起始地址,而所指类型则不一定相同。9.线性结构的基本特征是:每个元素有且仅有一个直接前驱和一个直接后继。【解答】错。每个元素最多只有一个直接前驱和一个直接后继,第一个元素没有前驱,最后一个元素没有后继。10.在单链表中,要取得某个元素,只要知道该元素所在结点的地址即可,因此单链表是随机存取结构。【解答】错。要找到该结点的地址,必须从头指针开始查找,所以单链表是顺序存取结构。11. 有n个元素依次进栈,则出栈序列有(n-1)/2种。【解答】错。应该有 种。12. 栈可以作为实现过程调用的一种数据结构。【解答】对。只要操作满足后进先出性,都可以采用栈作为辅助数据结构。13. 在栈满的情况下不能做进栈操作,否则将产生“上溢”。【解答】对。14. 在循环队列中,front指向队头元素的前一个位置,rear指向队尾元素的位置,则队满的条件是front=rear。【解答】错。这是队空的判定条件,在循环队列中要将队空和队满的判定条件区别开。15.空串与空格串是相同的。【解答】错。空串的长度为零,而空格串的长度不为0,其长度是串中空格的个数。空串和空格串有何区别?串中的空格符有何意义?空串在串处理中有何作用?【解答】不含任何字符的串称为空串,其长度为零。仅含空格的串称为空格串,它的长度为串中空格符的个数。串中的空格符可用来分隔一般的字符,便于人们识别和阅读,但计算串长时应包括这些空格符。空串在串处理中可作为任意串的子串。从栈顶指针为top的链栈中删除一个结点,用x保存被删除结点的值,则执行( )。A x=top; top=top-next; B x=top-data;C top=top-next; x=top-data; D x=top-data; top=top-next;二叉树习题 设有二叉树如下: (1)试写出该二叉树的先、中、后、层序遍历序列; (2)试画出对应的先、中、后序线索二叉树存储结构。先序遍历序列:ABDGCEFH;中序遍历序列:DGBAECHF;后序遍历序列:GDBEHFCA;层序遍历序列:ABCDEFGH1.一棵二叉树中第6层上最多有()个结点。A、2B、31C、32D、642.设完全二叉树T中含有n个结点,对这些结点从0开始按层序进行编号,若编号为i的结点有左孩子,则左孩子的编号为( )。A、2(i-1)B、2i-1C、2iD、2i+1E、2(i+1)3.已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )。A、 -A+B*C/DEB、-A+B*CD/E C、-+*ABC/DED、-+A*BC/DE4.先序遍历与中序遍历所得遍历序列相同的二叉树为( )。A、根结点无左孩子的二叉树B、根结点无右孩子的二叉树C、所有结点只有左子树的二叉树D、所有结点只有右子树的二叉树-C-B一棵度为3的树中,度为3的结点有2个,度为2的结点有2个,度为1的结点有2个,则度为0的结点有(D)个。A、4B、5C、6D、71.如果二叉树中任何一个结点的值都小于它的左子树上所有结点的值,且大于右子树上所有结点的值,要得到个结点值的递增序列,应按下列 次序排列结点。A) 先根 B) 中根 C) 后根 D) 层次2.设森林F中有3棵树。第一、第二和第三棵树的结点个数分别是m1,m2和m3,则与森林F对应的二叉树根结点的右子树上的结点个数是 。 A) m3 B) m2 + m3 C) m1 D) m1 + m23下列各项叙述中,正确的是 。A) 二叉树中每个结点有两个子结点,而对一般的树则无此限制 B) 用树的前序遍历和中序遍历可以推导出树的后续遍历C) 在二叉树中插入结点,该二叉树便不再是二叉树 D) 用一维数组存储二叉树,总是以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中建桥梁有限公司校园招聘笔试备考题库及答案解析
- 2025黄山市黄山区启兴人才发展有限公司招聘驾驶员1人笔试备考题库及答案解析
- 第三单元 第03课时 千米的认识(教学设计)数学人教版三年级上册2025
- 2025年河北承德市承德县公开招聘公益性岗位人员笔试备考试题及答案解析
- 武汉市七一中学招聘初中英语教师1人笔试备考题库及答案解析
- 2025重庆泰科防务科技有限公司招聘8人笔试备考试题及答案解析
- 2025国家国防科工局经济技术发展中心社会招聘7人笔试参考题库附答案解析
- 2025广西壮族自治区人力资源和社会保障厅直属事业单位招聘重点领域急需紧缺高层次人才2人笔试参考题库附答案解析
- 2025河南郑州市郑东新区春华学校、新徽维纲中学招聘教师笔试参考题库附答案解析
- 风险管理体系建设实施方案
- 派车单(标准样本)
- 少先队大队委申请表
- 广东省建筑施工安全管理资料统一用表2021年版(原文格式版)
- 浦东机场手册
- 柴油机负荷特性曲线比较课件
- JGJ保温防火复合板应用技术
- 《认识液体》-完整版PPT
- 《跳长绳绕“8”字跳绳》教学设计-小学《体育与健康》(水平二)四年级上册-人教版
- 幼儿园绘本:《闪闪的红星》 红色故事
- 山区二级公路施工组织设计(共60页)
- 小学生符号意识与模型思想的发展与培养
评论
0/150
提交评论