数据结构习题

合集下载

数据结构习题和答案

数据结构习题和答案

习题课填空1、对于一棵二叉树,若一个结点的编号为i,则它的左孩子结点的编号为,双亲结点的编号为。

2、向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动个元素。

3、在一棵二叉树中,若双分支结点数为5个,单分支结点数为6个,则叶子结点数为个。

4、为了实现折半查找,线性表必须采用方法存储。

顺序5、一种抽象数据类型包括数据对象和。

6、在以L为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为__________和_______。

7、数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。

8、队列的插入操作在进行,删除操作在进行。

9、二叉搜索树的中序遍历得到的结点序列为____ ____。

10、在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。

11、栈的特点是。

12、在单链表中,除了首元结点外,任一结点的存储位置由。

13、在一个具有n个顶点的无向图中,要连通所有顶点则至少需要条边。

14、深度为k(设根的层数为1)的完全二叉树至少有个结点,至多有个结点。

15、一棵深度为6的满二叉树有个分支结点和个叶子结点。

16、一个算法的效率可分为效率和效率。

17、队列的特点是。

18、一棵深度为5的满二叉树中的结点数为个。

19、在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。

简答题1、已知一组元素为(38,26,62,94,35,50,28,55),画出按元素排列顺序输入生成的一棵二叉搜索树。

答:2、假设有二维数组A[0..5,0..7],每个元素用相邻的6个字节存储,存储器按字节编址。

已知A的起始存储位置(基地址)为1000,计算:(1)末尾元素A57的第一个字节地址为;(2)若按列存储时,元素A47的第一个字节地址为。

(3) 数组A的体积(存储量);(4) 若按行存储时,元素A14的第一个字节地址为。

数据结构习题及答案

数据结构习题及答案

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

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

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

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

A.找出算法的合理性B.研究算法的输人与输出关系C.分析算法的有效性以求改进D.分析算法的易懂性二、填空题1、数据是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,数据是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

例如,数学中所用到的整数和实数,文本编辑所用到的字符串等。

2、数据元素是数据的基本单位,有些情况下也称为元素、结点、顶点、记录等。

3、数据项是数据不可分割的最小单元,是具有独立含义的最小标识单位。

例如构成一个数据元素的字段、域、属性等都可称之为_数据项。

4、简而言之,数据结构是数据之间的相互关系,即数据的组织形式。

5、数据的逻辑结构是指数据之间的逻辑关系。

逻辑结构是从逻辑关系上描述数据,它与具体存储无关,是独立于计算机的。

因此逻辑结构可以看作是从具体问题抽象出来的数学模型。

6、数据的存储结构指数据元素及其关系在计算机存储器内的表示。

存储结构是逻辑结构在计算机里的实现,也称之为映像。

7、数据的运算是指对数据施加的操作。

它定义在数据的逻辑结构之上,每种逻辑结构都有一个数据的运算。

常用的有:查找、排序、插人、删除、更新等操作。

8、数据逻辑结构可以分为四种基本的类型,集合结构中的元素除了仅仅只是同属于一个集合_,不存在什么关系。

9、数据逻辑结构的四种基本类型中,线性结构_中的元素是一种一对一的关系,这种结构的特征是:若结构是非空集,则有且只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱和一个直接后继。

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

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

数据结构练习题习题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. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。

5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

数据结构习题

数据结构习题

第1章绪论一、判断题1.数据的逻辑结构与数据元素本身的内容和形式无关。

(√)2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。

(√)3.数据元素是数据的最小单位。

(×)4.数据的逻辑结构和数据的存储结构是相同的。

(×)5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。

(×)6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。

(√)7.数据的存储结构是数据的逻辑结构的存储映象。

(√)8.数据的物理结构是指数据在计算机内实际的存储形式。

(√)9.数据的逻辑结构是依赖于计算机的。

(×)10.算法是对解题方法和步骤的描述。

(√)二、填空题1.数据有逻辑结构和存储结构两种结构。

2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。

3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

4.树形结构和图形结构合称为非线性结构。

5.在树形结构中,除了树根结点以外,其余每个结点只有1个前驱结点。

6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。

7.数据的存储结构又叫物理结构。

8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。

9.线性结构中的元素之间存在一对一的关系。

10.树形结构中的元素之间存在一对多的关系。

11.图形结构的元素之间存在多对多的关系。

12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算) 3个方面的内容。

13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系有限集合。

14.算法是一个有穷指令的集合。

15.算法效率的度量可以分为事先估算法和事后统计法。

16.一个算法的时间复杂度是算法输入规模的函数。

17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模的n的函数。

18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O( nlog2n)。

数据结构习题与答案

数据结构习题与答案
A、所有的操作算法实现简单B、便于随机存储
C、便于插入和删除D、便于利用零散的存储器空间
3.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度为C。
A、O(log2n) B、O(1)
C、O(n) D、O(n2)
4.(1)静态链表既有顺序存储的特点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关;
4、线性结构的特征:逻辑上满足有且仅有一个开始结点和一个终端结点,且其余结点有且仅有唯一的一个直接前趋和一个直接后继。
5.数据的存储结构被分为顺序、链接、索引和散列4种。
6.存储结构是逻辑结构的存储实现,其基本目标是建立数据的机内表示。
7.数据表示任务是逐步完成的,即数据表示形式的变化过程是:机外表示→
A、带尾指针的非循环链表B、带尾指针的循环链表
C、带头指针的非循环链表D、带头指针的循环链表
2、若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是B。
A、1和5 B、2和4
C、4和2 D、5和1
3、设栈的输入序列为1、2、3、4,则C不可能是其出栈序列。
push (s,x); }
push (s,x); printf(x)
push(s,y); }
push(s,x);
push(s,'E');
push(s,x);
此题的输出结果是HELOLLL。
5、以下为单链表删除运算,分析算法,请在处填上正确的语句。
void delete_lkist(lklist head,int i)
D、q->next=p->next;q->prior=p;p->next=q;p->next=q;

数据结构习题

数据结构习题

数据结构习题一.选择题1.下列有关线性表的叙述中,正确的是( A )A .一个线性表是n 个数据元素的有限序列B .线性表中任何一个元素有且仅有一个直接前驱C. 线性表中任何一个元素有且仅有一个直接后继 D .以上说法都不正确2.对线性表进行二分查找时,要求线性表必须( C )A .以顺序方式存储B .以链接方式存储C .以顺序方式存储,且数据元素有序D .以链接方式存储,且数据元素有序3.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第五个元素的地址是( B )A .110B .108C .100D .1204.一个队列的入列序列是1,2,3,4,则队列的输出序列是(B )A .4,3,2,1B .1,2,3,4C .1,4,3,2D .3,2,1,45.从一个长度为n 的顺序表中删除第i 个元素(1≤i ≤n)时,需向前移动( A )个元素.A .n-iB .n-i+1C .n-i-1D .i6.一棵二叉树如图所示,它的中序遍历的结果为(B )A .abdgcefhB .dgbaechfC .gdbehfcaD .abcdefgh7.按照二叉树的定义,具有3个结点的二叉树有( C )种A .3B .4C .5D .68.已知某二叉树的后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是(D )A .acbedB .decabC .deabcD .cedba10.从一个具有n 个结点的单链表中查找其值等于x 的结点时,在查找成功的情况下,需平均比较(D )个结点A .nB .n/2C .(n-1)/2D .(n+1)/211.某无序表具有N 个数据,若采用顺序查找算法,且每个数据查找的概率相等,那么查找失败时,平均查找长度ASL=( )。

A .N-1B .NC .(N+1)/2D .N (N-1)/212.具有N 个结点的连通图的生成树有( )。

A .N 个结点,N 条边B .N-1个结点,N-1条边C .N-1个结点,N 条边D .N 个结点,N-1条边13.下列哪一个不属于算法的设计目标( )。

数据结构习题及答案

数据结构习题及答案

数据结构习题及答案第1章算法一、选择题1.算法的时间复杂度是指()。

A)执行算法程序所需要的时间B)算法程序中的指令条数C)算法执行过程中所需要的基本运算次数D)算法程序的长度2.算法的空间复杂度是指()。

A)算法程序的长度B)算法程序所占的存储空间C)算法执行过程中所需要的存储空间D)算法程序中的指令条数3.下面()的时间复杂度最好(即执行时间最短)。

logn)O()O(n ) B)A2logn2 ) D)O(n)C)O(n24.下面累加求和程序段的时间复杂度为()。

int sum(int a[],int n){int i, s=0;for (i=0;i<n;i++)< p="">s+=a[i];return s;}logn ) )O(A)O(1 ) B22))O(nC)O(n ) D中的算法,c[][]相加的结果存放到b[][]n阶矩阵5.下面是将两个n阶矩阵a[][]与。

该算法的时间复杂度为()void matrixadd(int a[][],intb[][],c[][],int n){int i,j;for (i=0;i<n;i++)< p="">for(j=0;j<n;j++)< p="">c[i][j]=a[i][j]+b[i][j];}nlog) )O(1 ) B)O(A22) )O(nO( n ) DC)。

6.下面程序段的时间复杂度为() 1int i=0,s1=0,s2=0;while(i<n)< p="">{if(i%2)s1+=i;elses2+=i;i++;}nlog) O(A)O(1 ) B)22) )O(nC)O(n ) D )。

7.下面程序段的时间复杂度为(int prime(int n){int i=1;int x=(int)sqrt(n);while(i<=x){i++;if(n%i==0)break;}if(i>x)return 1;elsereturn 0;}nlog) O(O(1 ) BA))2n) O()CO(n ) D))下面程序段的时间复杂度为(8.int fun(int n){int i=1,s=1;while(s<n)< p="">{i++;s+=i;}return i;}nlog)O(n/2) BA))O(2 2n) )O(C)O(n ) D9.下面程序段的时间复杂度为()int i,j,m,n,a[][];for(i=0;i<m;i++)< p="">for(j=0;j<n;j++)< p="">a[i][j]=i*j;22) )O(nA)O(m) BO(m+n) )C)O(m*n ) D )10. 下面程序段的时间复杂度为(int sum1(int n){int i,p=1,s=0;for(i=1;i<=n;i++){p*=i;s=s+p;}return s;}nlog) )O(A)O(1 ) B22)O(n ) D)O(nC)二、填空题复杂度。

数据结构习题及答案

数据结构习题及答案

第一章概论一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 以及它们之间的 关系 和运算等的学科。

2. 数据结构被形式地定义为(D, R ),其中D 是 数据元素 的有限集合,R 是D 上的 关系 有限集合。

3. 数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三个方面的内容。

4. 数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结构 。

5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6. 在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点 没有后续结点,其余每个结点有且只有1个后续结点。

7. 在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有 后续 结点,其余每个结点的后续结点数可以任意多个 。

8. 在图形结构中,每个结点的前驱结点数和后续结点数可以 任意多个 。

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序 、 链式 、 索引 和 散列 。

10. 数据的运算最常用的有5种,它们分别是插入 、 删除、修改、 查找 、排序。

11. 一个算法的效率可分为 时间 效率和 空间 效率。

二、单项选择题( B )1. 非线性结构是数据元素之间存在一种:A )一对多关系B )多对多关系C )多对一关系D )一对一关系( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储( C )3. 算法分析的目的是:A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( A )4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性( C )5. 计算机算法指的是:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法( B )6. 计算机算法必须具备输入、输出和 等5个特性。

数据结构习题集

数据结构习题集

数据结构习题集第一章绪论1.1数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的关系和运算等的学科。

1.2 算法分析的目的是分析算法的效率以求该进,算法分析的两个主要方面是空间复杂度和时间复杂度。

1.3 计算机算法指的是解决问题的有限运算序列,它必须具备输入、输出和确定性、有穷性和可行性等5个重要特性。

第二章线性表2.32 下面关于线性表的叙述中,错误的是(B)A. 线性表采用顺序存储必须占用一片连续的存储单元B. 线性表采用顺序存储便于进行插入和删除操作C. 线性表采用链式存储不必占用一片连续的存储单元D. 线性表采用链式存储便于进行插入和删除操作第三章栈与队列一、选择题3.1 栈的特点是先进后出,队列的特点是先进先出。

3.4 判定一个栈ST(最多元素MaxSize)为空的条件是ST->top==-1。

3.8 一个队列的入队序列是1,2,3,4,则出队列的输出序列是1,2,3,4。

3.16一个队列的入队序列是1,2,3,4,则队列的输出序列是1,2,3,4。

3.18 若进栈序列为 1,2,3,4,,进栈过程中可以出栈,则以下不可能的出栈序列是3,1,4,23.1 栈和队列的区别仅在于____。

3.2 通常元素进栈的操作是____。

3.3通常元素退栈的操作是____。

3.4一个栈的输入序列是12345,则栈的输出序列43512是____。

3.5一个栈的输入序列是12345,则栈的输出序列12345是____。

第四章串4.1串是一种特殊的线形表,其特殊性体现在___B_A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符4.2 串的两种最基本的存储方式是顺序和链式。

4.3两个串相等的充分必要条件是:长度相等且对应位置上的字符相等。

4.4 空串是____,其长度等于____.4.5 串的三种机内表示方法是________、________、和___________。

数据结构练习题及答案

数据结构练习题及答案

数据结构练习题(一)一、单选题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进制表示。

A.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( )。

A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )。

A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。

A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

数据结构习题及标准答案

数据结构习题及标准答案

第一章1.在数据结构中,从逻辑上可以把数据结构分为(C )A.动态结构和静态结构 B. 紧凑结构和非紧凑结构C.线性结构和非线性结构 D. 内部结构和外部结构● 2.在数据结构中,与所使用的计算机无关的是( A )A. 逻辑结构B. 存储结构C. 逻辑和存储结构D. 物理结构3.下面程序的时间复杂度为____O(mn)_______。

for (int i=1; i<=m; i++)for (int j=1; j<=n; j++ )S+=i第二章线性表●链表不具备的特点是(A)A 可以随机访问任一结点(顺序)B 插入删除不需要移动元素C 不必事先估计空间D 所需空间与其长度成正比2. 不带头结点的单链表head为空的判定条件为(A ),带头结点的单链表head为空的判定条件为(B )A head==nullB head->next==nullC head->next==headD head!=null●3.在线性表的下列存储结构中,读取元素花费时间最少的是(D)A 单链表B 双链表C 循环链表D 顺序表● 4.对于只在表的首、尾两端进行手稿操作的线性表,宜采用的存储结构为(C)A 顺序表B 用头指针表示的单循环链表C 用尾指针表示的单循环链表D 单链表● 5.在一个具有n 个结点的有序单链表中插入一个新的结点,并保持链表元素仍然有序,则操作的时间复杂度为( D )A O(1)B O(log2n)C O(n2)D O(n)● 6.在一个长度为n (n>1)的单链表上,设有头和尾两个指针,执行(B)操作与链表的长度有关A 删除单链表中第一个元素B 删除单链表中最后一个元素C 在第一个元素之前插入一个新元素D 在最后一个元素之后插入一个新元素●7.与单链表相比,双向链表的优点之一是(D)A 插入删除操作更简单B 可以进行随机访问C 可以省略表头指针或表尾指针D 顺序访问相邻结点更容易●8.若list是某带头结点的循环链表的头结点指针,则该链表最后那个链结点的指针域(头结点的地址)中存放的是( B )A list的地址B list的内容C list指的链结点的值D 链表第一个链结点的地址●9.若list1和list2分别为一个单链表与一个双向链表的第一个结点的指针,则( B )A list2比list1占用更多的存储单元B list1与list2占用相同的存储单元C list1和list2应该是相同类型的指针变量D 双向链表比单链表占用更多的存储单元10.链表中的每个链结点占用的存储空间不必连续,这句话正确吗? (不正确)11. 某线性表采用顺序存储结构,元素长度为4,首地址为100,则下标为12的(第13个)元素的存储地址为148。

数据结构习题及答案

数据结构习题及答案

第一章绪论一.选择题1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。

①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。

①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进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.一个正确的算法应该具有5 个特性,除输入、输出特性外,另外3 个特性是()。

A.确定性、可行性、有穷性B.易读性、确定性、有效性C.有穷性、稳定性、确定性D.可行性、易读性、有穷性9.以下关于数据的逻辑结构的叙述中正确的是()。

A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构10.算法分析的主要任务是()。

A.探讨算法的正确性和可读性B.探讨数据组织方式的合理性C.为给定问题寻找一种性能良好的解决方案D.研究数据之间的逻辑关系二、填空题1.下面程序段的时间复杂度是_____O(n2)_______。

数据结构练习题及参考答案

数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。

for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。

int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

数据结构习题(含答案)

数据结构习题(含答案)

一、单选题(每小题3分,共30分)1.在逻辑上可以把数据结构分成。

( ) A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.串是_________。

( ) A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列3.在n个元素的顺序表中,时间复杂度是O(1)的操作是______。

( ) A.获得第i个数据元素值B.查找给定值C.在第i个位置上插入数据元素D.删除第i个数据元素4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址________。

( )A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以5.单链表中,在p结点之后插入q结点,操作的语句为。

( ) A.q->next=p->next,p->next=q B.p=q->next,q->next=pC.p->next=q->next,q->next=p D.q=p->next,p->next=q6.栈中数据元素的插入和删除操作是在表的进行的。

( )A.一端B.两端C.中间D.任意位置7.队列的特点是。

( )A.先进先出B.后进先出C.先进后出D.随机存取8.树中结点A有3个兄弟,结点B是A的双亲,则B的度是。

( )A.1B.2C.3D.49.下面关于图的存储结构的叙述中正确的是____________。

( )A.用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关B.用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关C.用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关D.用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关10.对于不带权的有向图,其邻接矩阵的每一列包含的“1”的个数为。

( )A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目二、判断题(每小题1分,共10分)对于正确的说法,请在题前的括号内打√,错误的说法则打×。

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

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

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。

for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。

int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

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

1.数据结构是研究数据的( C )以及它们之间的相互关系。

A)存储结构,物理结构 B)理想结构,抽象结构 C)物理结构,逻辑结构 D)抽象结构,逻辑结构2.在数据结构中,与所使用的计算机无关的是数据的( C )结构。

A)存储 B)物理 C)逻辑 D)物理与存储3.数据结构课程主要研究以下三方面的内容,它们是(D)。

A)数据、数据元素、数据类型B)数据元素、数据类型、算法实现 C)数据元素、数据的逻辑结构、数据的存储结构D)数据的逻辑结构、数据的存储结构、数据的运算4.在以下的复杂度量级中,量级最低的是(B)。

A) O(n) B) O(log2n) C) O(nlog2n) D) O(n2)5.在下列叙述中,正确的是(C)。

A)数据的逻辑结构要考虑数据元素本身的内容 B)不同类型的数据元素可以归类到同一的逻辑结构中 C)数据元素之间的关联关系在数据的逻辑结构中体现D)数据元素是数据不可分割的最小标识单位6.计算机算法必须具备输入、输出和(B)等五个特性。

A)可行性、可移植性和可扩充性 B)可行性、确定性和有穷性 C)确定性、稳定性和有穷性 D)易读性、稳定性和安全性7.算法分析的目的是(D)。

A)找出数据结构的合理性 B)研究算法中的输入/输出关系C)分析算法的易读性 D)分析算法的效率以求改进8.设 n>=10,下面程序段的时间复杂度是(D)。

for(i=10; i<n; i++){ j=k=0;while(j+k<=i)if (j>k) k++;else j++;}A) O (log2n) B) O(n) C) O(nlog2n) D) O(n2)9.计算机算法是指( D )A)计算方法 B)排序方法 C)调度方法 D)解决问题的有限运算序列10.数据的定义取决于数据的逻辑结构,而数据的实现取决于数据的物理结构(A)。

A)正确 B) 不正确11.下面说法错误的是(AD )A)算法原地工作的含义是指不需要任何额外的辅助空间B)在相同的规模 n 下,复杂度 O(n)的算法在时间上总是优于复杂度 O(2n)的算法C)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界D)同一个算法,实现语言的级别越高,执行效率就越低1. 数据元素是数据的最小单位。

( X )2. 记录是数据处理的最小单位。

( X )3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系; ( X )4. 算法的优劣与算法描述语言无关,但与所用计算机有关。

( X )5. 茁壮的算法不会因非法的输入数据而浮现莫名其妙的状态。

( √ )6. 算法可以用不同的语言描述,如果用C 语言或者 PASCAL 语言等高级语言来描述,则算法实际上就是程序了。

( X )7. 数据的物理结构是指数据在计算机内的实际存储形式。

( √ )8. 数据结构的抽象操作的定义与具体实现有关。

( X )9. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立( √ )10. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构. ( X )1.计算机执行下面的语句时,语句 s 的执行次数为: (n+3)(n-2)/2。

for(i=l;i<n-l;i++)for(j=n;j>=i;j--)s;2.下面程序段中带有下划线的语句执行次数的量级是( log2n2 )i=n*nwhile (i!=1)i=i / 2;3.下面程序段中带下划线的语句的执行次数的数量级是(nlog2n )。

i=1;while( i<n){ for j=1;j<=n;j++{ x=x+1;i=i*2;}}1.下列有关线性表的叙述中,正确的是(A)。

A)线性表中元素之间的关系是线性关系 B)线性表中至少有一个元素C)线性表中的任一元素有且仅有一个直接前趋D)线性表中的任一元素有且仅有一个直接后继2.下述哪一条是顺序存储结构的优点?(A)A)存储密度大 B)插入方便 C)删除方便 D)可方便地用于各种逻辑结构的存储表示3.在一个长度为n 的顺序表中,在第 i 个元素(1<=i<=n)之前插入一个新元素时需向后挪移(D)个元素。

A) 1 B) n-i C) n-i-1 D) n-i+14.如果某线性表中最常用的操作是取第 i 个元素和找第 i 个元素的前驱,那末采用(A )存储方式最节省时间。

A) 顺序表 B)单链表 C)双链表 D)循环链表5.对顺序存储的线性表,设其长度为n,且在任何位置上插入或者删除操作都是等概率的。

则插入一个元素时平均要挪移表中的(A)个元素。

A) n/2 B) (n+1)/2 C) (n-1)/2 D) n6.下述哪一条是顺序存储结构的缺点?(C) A)存储密度太大 B)随机存取 C)普通要估计最大的需要空间 D) 只能应用于少数几种逻辑结构的存储表示7.在单链表中,增加头结点的目的是(C)。

A)使单链表至少有一个结点B)标志表中首结点的位置 C)方便运算的实现 D)说明单链表是线性表的链式存储表示8.单链表不具有的特点是(A) 。

A)可随机访问任一元素 B)插入和删除不需要挪移元素C)不必事先估计存储空间 D)所需空间和线性表长度成正比9.循环链表的主要优点是(D) A)再也不需要头指针了 B)已知某个结点的位置后,能够容易找到他的直接前趋 C)在进行插入、删除运算时,能更好的保证链表不断开D)从表中的任意结点出发都能扫描到整个链表10.链表对于数据元素的插入与删除是(B)。

A)不需挪移结点,不需改变结点指针B)不需挪移结点,只需改变结点指针 C)只需挪移结点,不需改变结点指针D)既需挪移结点,又需改变结点指针11.在一个单链表中,已知 q 所指结点是 p 所指结点的前驱结点,若要在 q 和 p 所指结点之间插入 s 所指的结点,则执行(B)。

A) s->next = p->next; p->next = s; B) q->next = s; s->next = p;C) p->next = s; s->next = q; D) p->next = s->next; s->next = p;12.向一个有 115 个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要挪移(C) 个元素。

A) 115 B) 114C) 58 D) 5713.带头结点的单链表 Head 为空表的判定条件是 (B) 。

A) Head->next==Head B) Head->next==NULLC) Head!=NULL D) Head==NULL14.若要求能快速地实现在链表的末尾插入结点和删除第一个结点的运算,则选择(B)最合适。

A) 单链表 B) 带尾指针的单循环链表 C) 双链表 D) 双循环链表15.给定有 n 个元素的向量,建立一个有序单链表的时间复杂度是(D)。

A)O(n) B)O(log2n) C)O(nlog2n) D. O(n2)16.线性表采用链式存储时,其地址(C)。

A)必须是连续的 B)必须是不连续的C)连续与否均可 D)部份地址必须是连续的17.在一个具有 n 个结点的有序单链表中,插入一个新的结点并使之仍然有序的时间复杂度是(A)。

A)O(n) B)O(log2n)C)O(1) D)O(n2)第三章补充习题1.在下列排序算法中,时间复杂度不受数据初始特性影响,恒为O(n2)的是( c )。

A)插入排序B)冒泡排序C)选择排序D)堆排序2.在各种排序方法中,从未排序序列中挨次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( c )。

A)希尔排序B)冒泡排序C)插入排序D)选择排序3.快速排序方法在(c )情况下最不利于发挥其长处。

A)要排序的数据量太大B)要排序的数据含有多个相同值C)要排序的数据已基本有序D)要排序的数据个数为奇数4.已知10 个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列按从小到大排序,经过一趟冒泡排序后的序列为 (b )。

A) 16,28,34,54,73,62,60,26,43,95B) 28,16,34,54,62,73 ,60,26,43,95C) 28,16,34,54,62,60 ,73,26,43,95D) 16,28,34,54,62,60,73,26,43,955.一组记录的关键字为(46,79,56,38,40,84) ,则利用快速排序的方法,以第一个记录为基准元素得到的一次划分结果为(c )。

A) 38,40,46,56,79,84 B) 40,38,46,79,56,84C) 40,38,46,56,79,84 D) 40,38,46,84,56,796.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:(1)20,15,21,25,47,27,68,35,84(2)15,20,21,25,35,27,47,68,84(3)15,20,21,25,27,35,47,68,84则所采用的排序方法是( d )。

A)选择排序B)希尔排序C)归并排序D)快速排序7.在待排序的元素序列基本有序的前提下,效率最高的排序方法是(a )。

A)插入排序B)快速排序C)归并排序D)选择排序8.一组记录的排序码为(20,29,11,74,35,3,8,56) ,则利用堆排序方法建立的初始(小顶)堆为( b )。

A) 20,29,11,74,35,3,8,56B) 3,29,8,56,35,11,20,74C) 3,8,11,20,29,35,56,74D) 20,29,3,8,11,35,74,569.下列关键码序列中,属于堆的是(a )。

A) (15,30,22,93,52,71)B) (15 ,71 ,30 ,22 ,93,52)C) (15 ,52 ,22 ,93 ,30,71)D) (93,30,52,22,15,71)10.若要求尽可能快地对实数数组进行稳定的排序,则应选( c)。

A)快速排序B)堆排序C)归并排序D)基数排序11.下列排序算法的时间复杂度最小的是( d)。

A)冒泡排序B)希尔排序C)简单选择排序D)归并排序12.设有1000 个无序的元素,希翼用最快的速度挑选出其中前10 个最大的元素,最好(c )排序法。

A)起泡排序B)快速排序C)堆排序D)基数排序13.插入排序算法在每一趟都能选取出一个元素放在其最终的位置上。

( b)A)正确B)不正确14.直接插入排序是不稳定的排序方法。

相关文档
最新文档