《数据结构》大题及答案

《数据结构》大题及答案

一、应用题

1.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。

解:以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路径长度=2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为98位。

2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)=[ i/2 」(取下整数) ,其中i为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。

解:H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0

H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0

H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2

采用链地址法处理冲突,得到的开散列表如下:

平均查找长度=(1×7+2×4+3×1)/12=18/12

3.分析下面各程序段的时间复杂度

(1) s1(int n)

{ int p=1,s=0;

for (i=1;i<=n;i++)

{ p*=i;s+=p; }

return(s);

} ——O(n)

(2) s2(int n)

x=0;y=0;

For (k=1;k<=n;k++) x++;

For (i=1;i<=n;i++)

For (j=1;j<=n;j++)

y++; ——O(n2)

4.下述算法的功能是什么?

(1)(1)返回结点*p的直接前趋结点地址。

(2)交换结点*p和结点*q(p和q的值不变)。

5.对给定的一组权值W=(5,2,9,11,8,3,7),试构造相应的哈夫曼树,并计算它的带权路径长度。

解:构造的哈夫曼树如图所示。

WPL=2×4+3×4+5×3+7×3+8×3+9×2+11×2=120

6.已知散列函数H(k)=k mod 12,键值序列为(25, 37, 52, 43, 84, 99, 120, 15, 26, 11,

70, 82),采用链表法处理冲突,试构造散列表。

解:H(25)=1, H(37)=1, H(52)=4, H(43)=7, H(84)=0, H(99)=3, H(120)=0, H(15)=3, H(26)=2, H(11)=11, H(70)=10, H(82)=10 构造的开散列表如下:

7.分析下面各程序段的时间复杂度

(1) for (i=0;i

for (j=0;j

A[i][j]

——O(n*m)

(2)s=0;

for (i=0;i

for (j=0;j

s+=B[i][j];

sum=s;

——O(n2)

(3) A=B; B=C; C=A;

——O(1)

数据结构习题和答案及解析

数据结构习题和答案及解析 数据结构是计算机科学中非常重要的一个领域,它关注数据的存储、组织和管理方式。在学习数据结构的过程中,遇到习题是必不可少的,通过解答这些习题可以更好地理解和掌握数据结构的概念和应用。以 下是一些常见的数据结构习题及其答案和解析,希望可以帮助读者更 好地学习和理解数据结构。 习题一:栈的应用 题目描述:设计一个栈,使其具有获取栈中最小元素的操作。 解答及解析:可以通过两个栈来实现,一个栈用于存储数据,另一 个栈用于存储当前最小元素。在入栈时,如果新的元素比当前最小元 素小,则将新元素同时入栈到数据栈和最小栈;在出栈时,如果当前 出栈元素与最小栈的栈顶元素相同,则同时出栈。这样,最小栈的栈 顶元素始终为当前栈的最小元素。 习题二:队列的应用 题目描述:设计一个队列,使其具有获取队列中最大元素的操作。 解答及解析:可以通过两个队列来实现,一个队列用于存储数据, 另一个队列用于存储当前最大元素。在入队时,如果新的元素比当前 最大元素大,则将新元素同时入队到数据队列和最大队列;在出队时,如果当前出队元素与最大队列的队首元素相同,则同时出队。这样, 最大队列的队首元素始终为当前队列的最大元素。

习题三:链表的操作 题目描述:给定一个链表,删除链表中倒数第n个节点,并返回链表的头节点。 解答及解析:使用双指针法来解决该问题。首先让一个指针从链表的头节点向前移动n+1步,然后再让另一个指针从链表的头节点开始移动。这样两个指针之间的间隔为n,当第一个指针到达链表末尾时,第二个指针指向的节点就是倒数第n个节点的前一个节点。接着,将第二个指针指向的节点的next指针指向下下个节点,完成删除操作。 习题四:树的遍历 题目描述:给定一个二叉树,按照中序遍历的顺序返回其节点值的集合。 解答及解析:采用递归的方式进行中序遍历,先遍历左子树,然后访问根节点,最后遍历右子树。对于任意一个节点,递归遍历其左子树,将节点值添加到集合中。然后访问该节点,并将节点值添加到集合中。最后递归遍历右子树,将节点值添加到集合中。最终得到的集合即为中序遍历的结果。 习题五:图的搜索 题目描述:给定一个有向图,判断是否存在从起点到终点的路径。 解答及解析:可以使用深度优先搜索算法(DFS)来解决该问题。从起点开始进行深度优先搜索,如果找到终点,则存在从起点到终点的路径;如果遍历完所有节点都没有找到终点,则不存在路径。在搜

(完整版)数据结构试题及答案

《数据结构》自考复习思考试题○10 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上 ( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4 6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进行的无效位移次数为( ) A. m B. n-m C. n-m+1 D. n 8. 二维数组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( ) A. 429 B. 432 .

数据结构试卷带答案

数据结构试卷一 一、选择题20分 1.组成数据的基本单位是; A 数据项 B 数据类型 C 数据元素 D 数据变量 2.设数据结构A=D,R,其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是 C ; A 线性结构 B 树型结构 C 图型结构 D 集合 3.数组的逻辑结构不同于下列D的逻辑结构; A 线性表 B 栈 C 队列 D 树 4.二叉树中第ii≥1层上的结点数最多有C个; A 2i B 2i C 2i-1 D 2i-1 5.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为.A ; A p->next=p->next->next B p=p->next C p=p->next->next D p->next=p 6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是.C ; A 6 B 4 C 3 D 2 7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为C ; A 100 B 40 C 55 D 80 8.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为 A 3 B 4 C 5 D 1 9.根据二叉树的定义可知二叉树共有 B种不同的形态; A 4 B 5 C 6 D 7 10.设有以下四种排序方法,则 B 的空间复杂度最大; A 冒泡排序 B 快速排序 C 堆排序 D 希尔排序 二、填空题30分 1.设顺序循环队列Q0:m-1的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的 前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;; 2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为___________, 在链式存储结构上实现顺序查找的平均时间复杂度为___________; 3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉链表中共有________个指针 域,__________个空指针域; 4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B 的操作序列为______________________________________; 5.设无向图G中有n个顶点和e条边,则其对应的邻接表中有_________个表头结点和_________个表 结点; 6.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有______关系; 7.设一棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为__________; 8.设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号 为8的双亲结点的编号是___________,编号为8的左孩子结点的编号是_____________; 9.下列程序段的功能实现子串t在主串s中位置的算法,要求在下划线处填上正确语句; int indexchar s , char t { i=j=0; whilei

数据结构试题及答案

一、判断题: 1、线性表的逻辑顺序与物理顺序总是一致的。( ) 2、线性表的顺序存储表示优于链式存储表示。( ) 3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( ) 4、二维数组是其数组元素为线性表的线性表。( ) 5、每种数据结构都应具备三种基本运算:插入、删除和搜索。( ) 6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个 方面。( ) 7、线性表中的每个结点最多只有一个前驱和一个后继。() 8、线性的数据结构可以顺序存储,也可以链接存储。非线性的数据结构只能链接存储。() 9、栈和队列逻辑上都是线性表。() 10、单链表从任何一个结点出发,都能访问到所有结点() 11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。() 12、快速排序是排序算法中最快的一种。() 13、多维数组是向量的推广。() 14、一般树和二叉树的结点数目都可以为0。() 15、直接选择排序是一种不稳定的排序方法。() 16、98、对一个堆按层次遍历,不一定能得到一个有序序列。() 17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。() 18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。() 19、堆栈在数据中的存储原则是先进先出。() 20、队列在数据中的存储原则是后进先出。() 21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。() 22、哈夫曼树一定是满二叉树。() 23、程序是用计算机语言表述的算法。() 24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。() 25、用一组地址连续的存储单元存放的元素一定构成线性表。() 26、堆栈、队列和数组的逻辑结构都是线性表结构。() 27、给定一组权值,可以唯一构造出一棵哈夫曼树。() 28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。() 29、希尔排序在较率上较直接接入排序有较大的改进。但是不稳定的。() 30、在平均情况下,快速排序法最快,堆积排序法最节省空间。() 31、快速排序法是一种稳定性排序法。()

数据结构练习题(含答案)

数据结构练习题 习题1 绪论 1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。 ① A.操作对象B.计算方法C.逻辑结构D.数据映象 ② A.存储结构B.关系C.运算D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。 ① A.算法B.数据元素C.数据操作D.数据对象 ② A.操作B.映象C.存储D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 4. 算法分析的目的是①,算法分析的两个主要方面是②。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。 2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。 3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是__ __。 for (i=0;i

数据结构各章习题及答案!

数据结构习题及解答 第1章 概述 【例1-1】分析以下程序段的时间复杂度。 for(i=0;i

log) 得:T(n)=O(n2 【例1-4】有如下递归函数fact(n),分析其时间复杂度。 fact(int n) { if(n<=1) return(1);① else return(n*fact(n-1));② } 解:设fact(n)的运行时间函数是T(n)。该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。 由此可得fact(n)的时间复杂度为O(n)。 习题1 一、单项选择题 1.数据结构是指(1. A )。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 3.树形结构是数据元素之间存在一种(3. D )。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 4.设语句x++的时间是单位时间,则以下语句的时间复杂度为(4. B)。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) 5.算法分析的目的是(5. C、),算法分析的两个主要方面是(A)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(6. C、),它具备输入,输出和(B)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(7. B)。

《数据结构》大题及答案

《数据结构》大题及答案 一、应用题 1.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。 解:以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路径长度=2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为98位。 2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)=[ i/2 」(取下整数) ,其中i为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。 解:H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0 H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2 采用链地址法处理冲突,得到的开散列表如下: 平均查找长度=(1×7+2×4+3×1)/12=18/12

3.分析下面各程序段的时间复杂度 (1) s1(int n) { int p=1,s=0; for (i=1;i<=n;i++) { p*=i;s+=p; } return(s); } ——O(n) (2) s2(int n) x=0;y=0; For (k=1;k<=n;k++) x++; For (i=1;i<=n;i++) For (j=1;j<=n;j++) y++; ——O(n2) 4.下述算法的功能是什么? (1)(1)返回结点*p的直接前趋结点地址。 (2)交换结点*p和结点*q(p和q的值不变)。 5.对给定的一组权值W=(5,2,9,11,8,3,7),试构造相应的哈夫曼树,并计算它的带权路径长度。 解:构造的哈夫曼树如图所示。 WPL=2×4+3×4+5×3+7×3+8×3+9×2+11×2=120 6.已知散列函数H(k)=k mod 12,键值序列为(25, 37, 52, 43, 84, 99, 120, 15, 26, 11,

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

数据结构试题及答案(十套)数据结构试题及答案(十套) 一、选择题 1. 数据结构是指()。 A. 存储数据的方式 B. 数据的逻辑结构和物理结构 C. 数据的存储结构和存储方式 D. 数据的逻辑结构、存储结构和存储方式 答案:D 2. 在数据结构中,线性表的存储方式包括()。 A. 顺序存储和链式存储 B. 数组存储和链表存储 C. 顺序存储、链表存储和索引存储 D. 顺序存储、链表存储和树形存储 答案:A 3. 栈是一种()的数据结构。 A. 先进先出

B. 先进后出 C. 后进先出 D. 后进后出 答案:C 4. 队列是一种()的数据结构。 A. 先进先出 B. 先进后出 C. 后进先出 D. 后进后出 答案:A 5. 二叉树中,度为0的节点称为()。 A. 叶子节点 B. 根节点 C. 中间节点 D. 子节点 答案:A 6. 以下哪个排序算法是稳定的?

A. 快速排序 B. 选择排序 C. 插入排序 D. 希尔排序 答案:C 7. 图中表示顶点之间关系的边的数量称为()。 A. 顶点度数 B. 边数 C. 路径数 D. 网络 答案:B 8. 哈希表通过()来实现高效的查找操作。 A. 散列函数 B. 排序算法 C. 遍历操作 D. 顺序存储 答案:A

9. 平衡二叉树是一种具有左右子树高度差不超过()的二叉树。 A. 0 B. 1 C. 2 D. 3 答案:B 10. 在链表中,删除节点的操作时间复杂度是()。 A. O(1) B. O(logn) C. O(n) D. O(nlogn) 答案:A 二、填空题 1. 在顺序存储结构中,元素之间的逻辑关系由()表示。 答案:下标 2. 二叉查找树的中序遍历结果是一个()序列。 答案:递增 3. 哈希表通过散列函数将关键字映射到()上。

(完整版)数据结构练习题及参考答案

数据结构练习题 第一部分绪论 一、单选题 1. 一个数组元素a[i]与________的表示等价。 A、 *(a+i) B、 a+i C、 *a+i D、 &a+i 2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。 A、参数类型 B、参数个数 C、函数类型 3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数 A、指针 B、引用 C、值 4. 下面程序段的时间复杂度为____________。 for(int i=0; i

数据结构试题及答案

数据结构试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为(C ) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D ) A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。 A n B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。 A s→link = p→link;p→link = s; B p→link = s; s→link = q; C p→link = s→link;s→link = p; D q→link = s;s→link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。 A 起泡排序 B 堆排序 C 锦标赛排序 D 快速排序 6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。 A 求子串 B 模式匹配 C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放

该数组至少需要的存储字数是( C )。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A 栈 B 队列 C 循环队列 D 优先队列 9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。 10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。 A ( front - rear + 1) % m B ( rear - front + 1) % m C ( front - rear + m) % m D ( rear - front + m) % m 11、一个数组元素a[i]与( A )的表示等价。 A *(a+i) B a+i C *a+i D &a+i 12、若需要利用形参直接访问实参,则应把形参变量说明为( B )参数。 A 指针 B 引用 C 值 D 变量 13、下面程序段的时间复杂度为( C ) for (int i=0;i

《数据结构》教材课后习题+答案

《数据结构》教材课后习题+答案数据结构 第一章介绍 数据结构是计算机科学中重要的概念,它涉及到组织和存储数据的方法和技术。数据结构的选择对于算法的效率有着重要的影响。本教材为读者提供了丰富的课后习题,以帮助读者巩固所学知识并提高解决问题的能力。下面是一些选定的习题及其答案,供读者参考。 第二章线性表 习题一: 给定一个顺序表L,编写一个算法,实现将其中元素逆置的功能。 答案一: 算法思路: 1. 初始化两个指针i和j,分别指向线性表L的首尾两个元素 2. 对于L中的每一个元素,通过交换i和j所指向的元素,将元素逆置 3. 当i>=j时,停止逆置 算法实现: ```python

def reverse_list(L): i, j = 0, len(L)-1 while i < j: L[i], L[j] = L[j], L[i] i += 1 j -= 1 ``` 习题二: 给定两个线性表A和B,编写一个算法,将线性表B中的元素按顺序插入到线性表A中。 答案二: 算法思路: 1. 遍历线性表B中的每一个元素 2. 将B中的元素依次插入到A的末尾 算法实现: ```python def merge_lists(A, B): for element in B: A.append(element)

``` 第三章栈和队列 习题一: 编写一个算法,判断一个表达式中的括号是否匹配。表达式中的括号包括小括号"()"、中括号"[]"和大括号"{}"。 答案一: 算法思路: 1. 遍历表达式中的每一个字符 2. 当遇到左括号时,将其推入栈中 3. 当遇到右括号时,判断栈顶元素是否与其匹配 4. 当遇到其他字符时,继续遍历下一个字符 5. 最后判断栈是否为空,若为空则表示括号匹配 算法实现: ```python def is_matching(expression): stack = [] for char in expression: if char in "([{":

(完整word版)数据结构试题(含答案)

数据结构试题(含答案) 1.数据逻辑结构包括线性结构、树形结构和图状结构三种类型,树形结构和图状结构合称非线性结构 2.数据的逻辑结构分为集合、线性结构、树形结构和图状结构 4种。 3.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有 1 个后续结点。 4.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。 5.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没. 6.数据结构的基本存储方法是顺序、链式、索引和散列存储。有后续结点,其余每个结点的后续结点可以任意多个。 7.衡量一个算法的优劣主要考虑正确性、可读性、健壮性和时间复杂度与空间复杂度。8.评估一个算法的优劣,通常从时间复杂度和空间复杂度两个方面考察。 9.算法的5个重要特性是有穷性、确定性、可行性、输入和输出。 10.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。 11.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。 12.在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向后继结点。13.在顺序表中插入或删除一个数据元素,需要平均移动 n 个数据元素,移动数据元素的个数与位置有关 14.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,应采用顺序存储结构 15.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成单链表和双链表。 16.顺序存储结构是通过下标表示元素之间的关系的;链式存储结构是通过指针表示元素之间的关系的 17.带头结点的循环链表L中只有一个元素结点的条件是 L->next->next=L 18.栈是限定仅在表尾进行插入或删除操作的线性表,其运算遵循后进先出的原则。19.空串是零个字符的串,其长度等于零。空白串是由一个或多个空格字符组成的串,其长度等于其包含的空格个数。 20.组成串的数据元素只能是单个字符。 21.一个子串”str”在主串”datastructure”中的位置是 5 。 22.字符串中任意个连续字符构成的部分称为该串的子串。 23.二维数组M的每个元素是6个字符组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要 540个字节;M的第8列和第5行共占108个字节24.稀疏矩阵一般的压缩存储方法有两种,即三元组表和十字链表。 25.广义表((a),((b),c),(((d))))的长度是 3 ,深度是 4 。 26.在一棵二叉树中,度为零的结点的个数为n0,度为2 的结点的个数为n2,则有n0= n2+1 。 27.在有n个结点的二叉链表中,空链域的个数为__n+1__。 28.一棵有n个叶子结点的哈夫曼树共有__2n-1_个结点 29.深度为5的二叉树至多有 31 个结点。 30.若某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点个数为69 。

(完整版)数据结构试题及答案

数据结构试卷(一)王彬 一、单选题(每题2 分,共20分) 1.栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2.用链接方式存储的队列,在进行插入运算时( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D.头、尾指针可能都要修改 3.以下数据结构中哪一个是非线性结构?( ) A. 队列 B. 栈 C. 线性表 D. 二叉树 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在 676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。c A.688 B.678 C.692 D.696 5.树最适合用来表示( )。 A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 6.二叉树的第k层的结点数最多为( d ). A.2k-1 B.2K+1 C.2K-1 D. 2k-1 7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二 分查找,则查找A[3]的比较序列的下标依次为( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 8.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. O(1) B. O(n) C. O(1og2n) D. O(n2) 9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K) =K %9作为散列函数,则散列地址为1的元素有( c d)个, A.1 B.2 C.3 D.4 10.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。 A.5 B.6 C.7 D.8 二、填空题(每空1分,共26分) 1.通常从四个方面评价算法的质量:____ ____、________、________和_______。 2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。 3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数 为__________个,树的深度为_________,树的度为________。 4.后缀算式9 2 3 +- 10 2 / -的值为________。中缀算式(3+4X)-2Y/3对应的后缀算 式为______3 4X* + 2Y* / -_________________________。 5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指 针。在这种存储结构中,n个结点的二叉树共有_______个指针域,其中有________个指针域是存放了地址,有______________个指针是空指针。 6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点 分别有______个和______个。 7.AOV网是一种___________________的图。 8.在一个具有n个顶点的无向完全图中,包含有_____条边,在一个具有n个顶点的有向 完全图中,包含有_____条边。 9.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元 素成为一个子表,则得到的四个子表分别为__________________________、______________、_____________________和_____________________。

(完整版)数据结构试题及答案(10套最新)

单选题(每题2分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A. 健壮性和可读性B .并行性C.正确性D.时空复杂 度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点, 则执行(A )o A. p->n ext=HL->n ext; HL->n ext=p; B. p->n ext=HL; HL=p; C. p-> next=HL; p=HL; D. HL=p; p-> next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?( B ) A. 经常需要随机地存取元素 B.经常 需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4.4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 (C ) A. 2 3 1 C. 3 1 2 B. 3 2 1 D. 1 2 3 5. 5. AOV 网是- 种(D )o A.有向图 B.无向图 C.无向无环图 D .有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度( B)o A .低于链接法处理冲突 B.高于链接法处理冲突 C.与链接法处理冲突相同 D .高于二分查找 7. 7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。 A .值B.函数C.指针 D .引用 8. 8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相 同的(A )o A .行号B.列号C.元素值 D .非零元素个数 9. 9.快速排序在最坏情况下的时间复杂度为( D )o A. O(log2n) B. 0(nlog2n) C. 0(n) D . 0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为(C )o A. O( n) B. O(1) C. O(log2 n) D. O( n2) 二、运算题(每题6分,共24分) 1. 1.数据结构是指数据及其相互之间的___________________ 当结点之间存在M 对N ( M : N )的联系时,称这种结构为 ______________________ o 2. 2.队列的插入操作是在队列的_ _尾__________ 行,删除操作是在队列的— 首______ 行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___ top==0 __ (要超出才为满)______________ o 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度

数据结构试题集[包含答案_完整版]

第一章概论 一、选择题 1、研究数据结构就是研究(D )。 A. 数据的逻辑结构 B. 数据的存储结构 C. 数据的逻辑结构和存储结构 D. 数据的逻辑结构、存储结构及其基本操作 2、算法分析的两个主要方面是( A )。 A. 空间复杂度和时间复杂度 B. 正确性和简单性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。 A. 图 B. 树 C. 广义表 D. 栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(B )等5个特性。 A. 可执行性、可移植性和可扩充性 B. 可执行性、有穷性和确定性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 for(i=0;i

A. 计算机程序 B. 解决问题的计算方法 C. 排序算法 D. 解决问题的有限运算序列 7、某算法的语句执行频度为(3n+nlog 2n+n 2+8),其时间复杂度表示( C )。 A. O(n) B. O(nlog 2n) C. O(n 2) D. O(log 2n) 8、下面程序段的时间复杂度为( C )。 i=1; while(i<=n) i=i*3; A. O(n) B. O(3n) C. O(log 3n) D. O(n 3) 9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。 A. 结构 B. 关系 C. 运算 D. 算法 10、下面程序段的时间复杂度是(A )。 i=s=0; while(s

数据结构实用试题及答案

《数据结构》实用试题及答案 1 .设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(1%每个元素占一个空间,问A[3][3](io)存放在什么位置?脚注(10)表示用10进制表示。(C) A.688 B.678 C.692 D.696 2 .二叉树的第k层的结点数最多为(D). A.2k-1 B.2K+1 C.2K-1 D.2k-1 3 .设哈夫曼树中的叶子结点总数为现若用二叉链表作为存储结构,则该哈夫曼树中总 共有(B)个空指针域。 (A)2m-1(B)2m(C)2m+1(D)4m 4 .设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉 树得到序列为(A)。 (A)BADC(B)BCDA(C)CDAB(D)CBDA 5 .设某棵二叉树中有2000个结点,则该二叉树的最小高度为(C)。 (A)9(B)10(C)11(D)12 6 .下面程序的时间复杂为(B) for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;} (A)O(n)(B)O(n2) 7 .设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作 序列为(A)。 (A) q=p->next;p->data=q->data;p->next=q->next;free(q); (B) q=p->next;q->data=p->data;p->next=q->next;free(q); (C) q=p->next;p->next=q->next;free(q); (D) q=p->next;p->data=q->data;free(q); 8 .设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为(B)。 (A)O(1)(B)O(log2n)(C)(D)O(n2) 9 .数据的物理结构主要包括—顺序存储结构—和—链式存储结构两种情况。 10 .设一棵完全二叉树中有500个结点,则该二叉树的深度为9;若用二叉链表作为该完全二叉树的存储结构,则共有501个空指针域。 11 .设输入序列为1、2、3,则经过栈的作用后可以得到5种不同的 输出序列。 12 .设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序 编号,则第i个结点的双亲结点编号为—i/2,右孩子结点的编号为 2i+1。 13 .设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C)。 (A)O(n)(B)O(nlog2n)(C)O(1)(D)O(n2) 14 .设一棵二叉树的深度为k,则该二叉树中最多有(D)个结点,最少有(C)个结点。 (A)2k-1(B)2k(C)2k-1(D)2k-1 15 .在二叉排序树中插入一个结点的时间复杂度为(B)。 (A)O(1)(B)O(n)(C)O(log2n)(D)O(n2) 16 .设用链表作为栈的存储结构则退栈操作(B)0

相关主题
相关文档
最新文档