数据结构各章作业题目

合集下载

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

第1章4.答案:(1)顺序存储结构顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

(2)链式存储结构顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。

但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。

所以链式存储结构通常借助于程序设计语言的指针类型来描述。

5. 选择题(1)~(6):CCBDDA6.(1)O(1) (2)O(m*n) (3)O(n2)(4)O(log3n) (5)O(n2) (6)O(n)第2章1.选择题(1)~(5):BABAD (6)~(10):BCABD (11)~(15):CDDAC 2.算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。

要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。

表中不允许有重复的数据。

[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。

如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。

当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。

void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){//合并链表La和Lb,合并后的新表使用头指针Lc指向pa=La->next; pb=Lb->next;//pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点Lc=pc=La; //用La的头结点作为Lc的头结点while(pa && pb){ if(pa->data<pb->data){pc->next=pa; pc=pa; pa=pa->next;}//取较小者La中的元素,将pa链接在pc的后面,pa指针后移else if(pa->data>pb->data) {pc->next=pb; pc=pb; pb=pb->next;}//取较小者Lb中的元素,将pb链接在pc的后面,pb指针后移else //相等时取La中的元素,删除Lb中的元素{pc->next=pa;pc=pa;pa=pa->next;q=pb->next; delete pb ; pb =q;}}pc->next=pa?pa:pb; //插入剩余段delete Lb; //释放Lb的头结点}(5)设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。

3.数据结构作业答案第3章--第3章栈和队列自测卷答案作业答案

3.数据结构作业答案第3章--第3章栈和队列自测卷答案作业答案

head第3章 栈和队列 自测卷答案 姓名 班级一、填空题(每空1分,共15分)1. 【李春葆】向量、栈和队列都是 线性 结构,可以在向量的 任何 位置插入和删除元素;对于栈只能在 栈顶 插入和删除元素;对于队列只能在 队尾 插入和 队首 删除元素。

2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 栈顶 。

不允许插入和删除运算的一端称为 栈底 。

3. 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

4. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。

(注:不一定,这是一种约定,在殷教材中是队首指针指向队列的首元素位置)5. 在具有n 个单元的循环队列中,队满时共有 n-1 个元素。

6. 向栈中压入元素的操作是先 移动栈顶指针 ,后 存入元素 。

7. 从循环队列中删除一个元素时,其操作是 先 移动队首指针 ,后 取出元素 。

(注:不一定,这是一种约定,在殷教材中是先 取出元素 ,后移动队首指针 )8. 〖00年统考题〗带表头结点的空循环双向链表的长度等于 0 。

解:二、判断正误(判断下列概念的正确性,并作出简要的说明。

)(每小题1分,共10分) ( × )1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。

( × )2. 在表结构中最常用的是线性表,栈和队列不太常用。

错,不一定吧调用子程序或函数常用,CPU 中也用队列。

( √ )3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(×)5. 栈和链表是两种不同的数据结构。

错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。

数据结构作业题目答案

数据结构作业题目答案

数据结构作业题⽬答案⼀、单择题1.栈和队列的共同特点是(A)。

A.只允许在端点处插⼊和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.⼆叉树的第k层的结点数最多为(2的k-1次⽅)。

A.2k-1B.2K+1C.2K-1D. 2k-13.数据结构中,从逻辑上可以把数据结构分成(C)。

A.动态结构和静态结构B.进凑结构和⾮进凑结构C.线性结构和⾮线性结构D.内部结构和外部结构4.设⼆叉树的先序遍历序列和后序遍历序列正好相反,则该⼆树满⾜的条件是(全部是左⼦树或全部是右⼦树 CD )。

A.空或只有⼀个结点B.⾼度等于其结点数C.任⼀结点⽆左孩⼦D.任⼀结点⽆右孩⼦5.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( A )个元素。

A. n-iB. n+l -iC.n-1-iD. i6.判定⼀个栈ST(最多元素为m0)为空的条件是(B)。

A.ST→TOP!=0B.ST→TOP==0C.ST→TOP!=m0D.ST→TOP==m0B7. ⾮空的循环单链表head的尾结点(由P所指向)满⾜( C )。

A.p->next=NULLB.p=NULLC.p->next=headD.p=head8.在线性结构中,所有结点都有( B )个直接后继。

A.0B.0或1C.1D.不确定9.设数组A[m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执⾏⼊队操作时修改指针的语句是。

A、sq.front=(sq.front+1)%mB、sq.front=(sq.front+1)%(m+1)C、sq.rear=(sq.rear+1)%mD、sq.rear=(sq.rear+1)%(m+1)⼆、填空题1.已知⼀棵⼆叉树的中序序列和后序序列分别为:DBGEACHF和DGEBHFCA,则该⼆叉树的前序序列是( ABDECFH )。

2.在( 循环 )链表中,从任何⼀结点出发都能访问到表中的所有结点。

数据结构试题及答案

数据结构试题及答案

数据结构试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是元素之间存在一对一的线性关系。

以下哪个数据结构不属于线性结构?A. 栈B. 队列C. 树D. 链表答案:C2. 栈(Stack)是一种后进先出(LIFO)的数据结构,以下哪个操作不是栈的基本操作?A. PushB. PopC. TopD. Sort答案:D3. 在二叉树的遍历中,前序遍历的顺序是:A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A4. 哈希表的冲突可以通过多种方法解决,以下哪个不是解决哈希表冲突的方法?A. 链地址法B. 开放地址法C. 再散列法D. 排序法答案:D5. 以下哪个排序算法是稳定的?A. 快速排序B. 堆排序C. 归并排序D. 选择排序答案:C6. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构来实现?A. 队列B. 栈C. 链表D. 哈希表答案:B7. 以下哪个是图的存储方式?A. 顺序存储B. 链式存储C. 散列表D. 矩阵存储答案:D8. 动态数组(如C++中的vector)在插入元素时可能需要进行的操作是:A. 原地扩展B. 复制元素C. 重新分配内存D. 释放内存答案:C9. 以下哪个不是算法的时间复杂度?A. O(1)B. O(log n)C. O(n^2)D. O(n!)答案:D10. 在查找算法中,二分查找法要求被查找的数据必须是:A. 无序的B. 有序的C. 随机分布的D. 唯一元素答案:B二、简答题(每题5分,共30分)1. 简述链表和数组的区别。

答案:链表和数组都是存储数据的线性数据结构,但它们在内存分配、访问方式、插入和删除操作等方面存在差异。

数组在内存中是连续存储的,可以通过索引快速访问任意元素,但插入和删除元素时可能需要移动大量元素。

链表在内存中是非连续存储的,每个元素包含数据和指向下一个元素的指针,不支持通过索引快速访问,但插入和删除操作只需要改变指针,不需要移动其他元素。

数据结构习题(有答案)(精选文档)

数据结构习题(有答案)(精选文档)

数据结构习题(有答案) 第1章绪1。

1 有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。

(1) A= ( D,R ),其中,D = { a1,a2,a3,a4}, R={ }(2) B= ( D,R ),其中,D = { a,b,c,d,e}, R={ (a,b),(b,c),(c,d),(d,e)}(3) C= ( D,R),其中,D = { a,b,c,d,e,f,g}, R={(d,b),(d,g),(1)集合(2) 线性表a b c d e(3)树fgabcde(4)图1453621 / 48·····谢阅。

(b,a),(b,c),(g,e),(e,f)}(4) K= ( D,R ),其中,D= { 1,2,3,4,5,6}, R={〈1,2>,〈2,3>,〈2,4>,<3,4>,<3,5>,<3,6>,<4,5〉,〈4,6〉}1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。

(1) i=1;k=0while(i 〈=n-1){k+=10*i ;i++;(2) for (int i=1;i<=n; i++)for (int j=1; j〈=n; j++){c[i][j]=0;解:(1) n-1(2) ∑∑∑====ninjnkn111312 / 48·····谢阅。

}ﻩ for(intk=1; k〈=n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j]}(3) x=0;y=0;for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)for (intk=1; k〈=j; k ++)(3)62)1)(nn(n21)(216)12)(1(2121212)1(1112111111++=+•+++•=+=+==∑∑∑∑∑∑∑∑========nnnnniii ijnininiijjkniijni3 / 48·····谢阅。

数据结构习题参考答案

数据结构习题参考答案

数据结构习题参考答案一、栈和队列1. 栈是一种具有后进先出(Last In First Out)特性的线性数据结构。

常用方法:- push(x): 将元素x压入栈顶;- pop(): 弹出栈顶元素;- top(): 返回栈顶元素;- isEmpty(): 判断栈是否为空;例题解答:(1)题目描述:使用栈实现队列的功能。

解答:使用两个栈,一个用于入队操作,一个用于出队操作。

入队操作:直接将元素压入入队栈中;出队操作:如果出队栈为空,则将入队栈的元素逐个弹出并压入出队栈,此时出队栈的栈顶元素即为要弹出的元素。

复杂度分析:入队操作的时间复杂度为O(1),出队操作的平均时间复杂度为O(1)。

(2)题目描述:判断括号序列是否合法,即括号是否完全匹配。

解答:使用栈来处理括号序列,遇到左括号则入栈,遇到右括号则与栈顶元素进行匹配,如果匹配成功则继续处理剩余字符,如果不匹配则判定为非法序列。

算法步骤:- 初始化一个空栈;- 从左到右遍历括号序列,对于每个字符执行以下操作:- 如果是左括号,则将其入栈;- 如果是右括号,则将其与栈顶元素进行匹配:- 如果栈为空,则判定为非法序列;- 如果栈顶元素与当前字符匹配,则将栈顶元素出栈,继续处理剩余字符;- 如果栈顶元素与当前字符不匹配,则判定为非法序列。

- 遍历结束后,如果栈为空,则括号序列合法;否则,括号序列非法。

复杂度分析:时间复杂度为O(n),其中n为括号序列的长度。

2. 队列是一种具有先进先出(First In First Out)特性的线性数据结构。

常用方法:- enqueue(x): 将元素x入队;- dequeue(): 出队并返回队首元素;- getFront(): 返回队首元素;- isEmpty(): 判断队列是否为空;例题解答:(1)题目描述:使用队列实现栈的功能。

解答:使用两个队列,一个用于入栈操作,一个用于出栈操作。

入栈操作:直接将元素入队入栈队列中;出栈操作:如果出栈队列为空,则将入栈队列的元素逐个出队并入队出栈队列,此时出栈队列的队首元素即为要出栈的元素。

数据结构试题及答案(10套)

数据结构试题及答案(10套)

数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。

每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。

下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。

2. 在二叉搜索树中,中序遍历的结果是________。

编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。

2. 二叉树每个节点最多有______个子节点。

编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。

每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章作业一、选择题1.被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为( )。

A. 规则B. 结构C. 集合D. 运算2.在Data_Structure=(D,S)中,D是( )的有限集合。

A. 数据元素B. 算法C. 数据操作D.数据对象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.以下选项属于非线性结构的是( )。

A. 广义表B. 队列C. 优先队列D. 栈9.以下属于逻辑结构的是( )A. 顺序表B. 散列表C. 有序表D. 单链表10.一个完整的算法应该具有( )等特性。

A. 可执行性、可修改性和可维护性B. 可行性、确定性和有穷性C. 确定性、有穷性和可靠性D. 正确性、可读性和有效性11.若一个问题既可以用迭代方法也可以用递归方法求解,则( )的方法具有更高的时空效率。

A. 迭代B. 递归C. 先递归后迭代D. 先迭代后递归12.一个递归算法必须包括( )A. 递归部分B. 终止条件和递归部分C. 迭代部分D. 终止条件和迭代部分13.算法的时间复杂度与( )有关。

A. 问题规模B. 源程序长度C. 计算机硬件运行速度D. 编译后执行程序的质量二、指出下列各算法的功能并求出其时间复杂度。

(1)int Prime(int n){int i=2,x=(int)sqrt(n); //sqrt(n)为求n的平方根while(i<=x){if(n%i==0)break;i++;}if(i>x) return 1;else return 0;}(2)int sum1(int n){int p=1,s=0;for(int i=1;i<=n;i++){p*=i;s+=p;}return s;}(3)int sum2(int n){int s=0;for(int i=1;i<=n;i++){int p=1;for(int j=1;i<=i;j++) p*=j;s+=p;}return s;}(4)int fun(int n){int i=1,s=1;while(s<n) s+=++i;return i;}(5)void mtable(int n){for(int i=1;i<=n;i++){for(int j=i;j<=n;j++)cout<<i<<"*"<<j<<"="<<setw(2)<<i*j<<" ";cout<<endl;}}第二章作业一、选择题1. 在线性表中的每一个表元素都是不可再分的( )A. 数据项B. 数据记录C. 数据元素D. 数据字段2. 顺序表是线性表的( )存储表示。

A. 有序B. 连续C. 数组D. 顺序存取3. 若长度为n 的非空线性表采用顺序存储结构,在表中的第i 个位置插入一个数据元素,i 的合法值应该是( )A. n i ≤≤1B. 11+≤≤n iC. 10-≤≤n iD. n i ≤≤04. 若设一个顺序表的长度为n ,那么,在表中顺序查找一个值为x 的元素时,在等概率的情况下,查找成功的数据平均比较次数为( )A. nB. 2/nC. 2/)1(+nD. 2/)1(-n5. 在长度为n 的顺序表的表尾插入一个新的元素的时间复杂度为( )A. )(n OB. )1(OC. )(2n OD. )(log 2n O6. 数据结构反映了数据元素之间的结构关系。

单链表是一种( )。

A. 顺序存储线性表B. 非顺序存储非线性表C. 顺序存储非线性表D. 非顺序存储线性表7. 单链表又称为线性链表,在单链表上实施插入和删除操作( )A. 不需移动结点,不需改变结点指针B. 不需移动结点,只需改变结点指针C. 只需移动结点,不需改变结点指针D. 既需移动结点,又需改变结点指针8. 已知L 是带头结点的单链表,则删除首元素结点的语句是( )A. L=L->next;B. L->next=L->next->next;C. L=L->next->next;D. L->next=L;9. 已知单链表A 长度为m ,单链表B 长度为n ,若将B 链接在A 的末尾,在没有链尾指针的情况下,算法的时间复杂度应为( )。

A. )1(OB. )(m OC. )(n OD. )(n m O +10. 给定有n 个元素的一维数组,建立一个有序单链表的时间复杂度是( )A. )1(OB. )(n OC. )(2n OD. )log (2n n O二、算法设计1. 设计一个算法,从顺序表L 中(SqList L)删除具有给定值x(ElemType x)的所有元素。

2. 设计一个算法,从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不相同。

3. 设计一个算法,在非递减有序的带头结点的单链表中删除值相同的多余结点。

第三章作业一、选择题1. 用S 表示进栈操作,用X 表示出栈操作,若元素的进栈顺序是1234,为了得到1342的出栈顺序,相应的S 和X 的操作序列为( )A. SXSXSSXXB. SSSXXSXXC. SXSSXXSXD. SXSSXSXX2. 假设一个栈的输入序列是1,2,3,4,则不可能得到的输出序列是( )A. 1,2,3,4B. 4,1,2,3C. 4,3,2,1D. 1,3,4,23. 已知一个栈的进栈序列为1,2,3,…,n ,其输出序列的第一个元素是i ,则第j 个出栈元素是( )。

A. i j -B. i n -C. 1+-i jD. 不确定4. 已知一个栈的进栈序列为n ,,3,2,1Λ,其输出序列是n p p p p ,,,,321Λ。

若n p =1,则i p 的值是( )A. iB. i n -C. 1+-i nD. 不确定5. 已知一个栈的进栈序列为n ,,3,2,1Λ,其输出序列是n p p p p ,,,,321Λ。

若31=p ,则2p 的值是( )A.一定是2B. 一定是1C.可能是1D. 可能是26. 已知一个栈的进栈序列为n p p p p ,,,,321Λ,其输出序列是n ,,3,2,1Λ。

若13=p ,则1p 的值是( )A.一定是2B. 可能是2C.不可能是2D. 一定是37. 已知一个栈的进栈序列为n p p p p ,,,,321Λ,其输出序列是n ,,3,2,1Λ。

若33=p ,则1p 的值是( )A.一定是2B. 可能是2C.不可能是1D. 一定是18. 已知一个栈的进栈序列为n p p p p ,,,,321Λ,其输出序列是n ,,3,2,1Λ。

若1=n p ,则1p 的值是( )A. 1+-i nB. i n -C. iD. 不确定9. 设栈S 和队列Q 的初始状态均为空,元素1,2,3,4,5,6,7,依次进入S 。

如果每个元素出栈后立即进入队列Q ,且7个元素的出队顺序为2,4,3,6,5,1,7,则栈S 的容量至少是( )A. 1B. 2C. 3D. 410.对中缀表达式53--++求值,在求值过程中扫描到6时,操作数栈和操作符栈的内4(*2*26)32*容分别是( )A. 3,2,4,2,2和+,*,(,+,*B. 3,2,4,4和+,*,(,+C. 3,2,8和+,*,(D. 3,2,8,6和+,*,(,-二、算法设计题1. 详见《数据结构题集(C语言版)》第25页3.24。

2. 详见《数据结构题集(C语言版)》第25页3.25。

第四章作业11.串是一种特殊的线性表,其特殊性体现在( )A. 可以顺序存储B. 数据元素是一个字符C. 可以链式存储D. 数据元素可以是多个字符12.设有两个串T和P,求P在T中首次出现的位置的运算叫做( )。

A. 求子串B. 模式匹配C. 串替换D. 串连接13.下面关于串的叙述中,哪一个是不正确的?()A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储14.串的长度是指()A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数15.两个串相等的充分必要条件是()A.串中所含的字符相同B.串中所含字符的个数相同,且对应位置上的字符也相同C.串中所含的字符个数相同D.串中对应位置上的字符相同6. 已知p=”abcaabbabcabaacbacb”,求出next函数值。

第五章作业一、选择题16. 数组通常具有的操作是( )A. 顺序存取B. 直接存取C. 散列存取D. 索引存取17. 多维数组实际上是由( )实现的。

A. 一维数组B. 多项式C. 三元组表D. 简单变量18. 在二维数组A[8][10]中,每一个数组元素A[i][j]占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是( )。

A. 80B. 100C. 240D. 27019. 一个二维数组A[10][20]按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址为( )A. 226B. 322C. 341D. 34220. 一个二维数组A[10][20]按列存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址为( )A. 226B. 322C. 341D. 34221. 在二维数组A[9][10]中,每个数组元素占用3个存储单元,从首地址SA 开始按行连续存放,在这种情况下,元素A[8][5]的起始地址为( )A. SA+141B. SA+144C. SA+222D. SA+25522. 将一个n n ⨯的对称矩阵A 的下三角部分按存放在一个一维数组B 中,A[0][0]存放在B[0]中,那么第i 行的对角元素A[i ][i ]在B 中的存放位置是( )A. 2/)3(i i +B. 2/)1(i i +C. 2/)12(i i n +-D. 2/)12(i i n --23. 将一个n n ⨯的对称矩阵A 的上三角部分按存放在一个一维数组B 中,A[0][0]存放在B[0]中,那么第i 行的对角元素A[i ][i ]在B 中的存放位置是( )A. 2/)3(i i +B. 2/)1(i i +C. 2/)12(i i n +-D. 2/)12(i i n --24. 设A 是一个n n ⨯的对称矩阵,将A 的对角线及对角线上方的元素以列优先(以列为主序)的方式存放在一维数组]2/)1([+n n B 中,则矩阵中任一元素),,0(j i n j i a ij ≤<≤在B 中的存放位置是( )A. i j j ++2/)1(B. 12/)1(-+-i j jC. j i i ++2/)1(D. 12/)1(-+-j i i25. 设n 阶三对角矩阵A 的三条对角线上的元素被按行压缩存储到一维数组B 中,A[0][0]存放于B[0]。

相关文档
最新文档