几个数据结构的题
最新版数据结构1800题含完整答案详解
数据结构1800例题与答案第一章绪论一、选择题(每小题2分)1.算法的计算量的大小称为计算的( B )。
【北京邮电大学2000 二、3 (20/8分)】A.效率B.复杂性C.现实性D.难度2.算法的时间复杂度取决于(C)。
【中科院计算所1998 二、1 (2分)】A.问题的规模B.待处理数据的初态C.A和B D.都不是3.计算机算法指的是(①C ),它必须具备(② B )这三个特性。
①A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法②A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是(B )。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5.下面关于算法说法错误的是( D )【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是(C )【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构( D )?【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?(A)【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为(C)【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是(D)A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型(D)【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,(A)是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,(C)是非线性数据结构。
数据结构练习题
. . . . .一、单选题第1章绪论1、在数据结构中,从逻辑上可以把数据结构分成A、动态结构和静态结构C、线性结构和非线性结构2、算法分析的两个主要方面是A、空间复杂性和时间复杂性C、可读性和文档性3、数据的不可分割的最小单位是B、紧凑结构和非紧凑结构D、内部结构和外部结构B、正确性和简明性D、数据复杂性和程序复杂性A、结点B、数据元素C、数据项D、数据对象4、在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为A、规则B、集合C、结构D、运算5、与程序运行时间有关的因素主要有以下四方面,其中与算法关系密切的是A、问题的规模C、机器执行速度二、判断题1、数据结构是带有结构的数据元素的集合。
2、程序越短,运行的时间就越少。
3、处理同一问题的算法是唯一的。
B、机器代码质量的优劣D、语句的执行次数4、一个完整算法可以没有输入,但必须有输出。
三、填空题1、______________是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
2、______________结构的数据元素之间存在一对多的关系。
3、数据结构的形式化定义为(D,S),其中D 是______________的有限集,S 是 D 上关系的有限集。
4、数据结构在计算机中的______________称为存储结构。
5、数据元素之间的关系在计算机中有两种不同的表示方法:顺序映象和非顺序映象,由此- 1 -得到两种不同的存储结构是______________存储结构和______________存储结构。
6、一个算法具有五个特性:______________、______________、______________、有零个或多个输入、有一个或多个输出。
7、评价一个算法的好坏应该从算法的正确性、可读性、___________和_________________等几方面进行。
四、解答题1、设n 为正整数。
(题)数据结构复习题
(题)数据结构复习题Ch3链表一、选择题(共18题,11道算法设计题)1、设单链表中结点的结构为(data, link)。
已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?(1) s->link = p->link; p->link = s;(3) p->link = s->link; s->link = p;Key:(2)2、设单链表中结点的结构为(data, link)。
已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作?(1) s->link = p;p->link = s;(2) s->link = p->link;p->link = s;(4) p->link = s;s->link = p;(2) q->link = s; s->link = p;(4) p->link = s; s->link = q;(3) s->link = p->link; p = s;Key:(2)3、设单链表中结点的结构为(data, link)。
若想摘除结点*p的直接后继,则应执行下列哪一个操作?(2) p = p->link; p->link = p->link->link;(4) p = p->link->link;(1) p->link = p->link->link;(3) p->link = p->link;Key:(1)4、设单循环链表中结点的结构为(data, link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。
若想删除链表第一个结点,则应执行下列哪一个操作?(1) s = rear; rear = rear->link; free(s);(2) rear = rear->link;free(rear);(3) rear = rear->link->link; free(rear);(4) s = rear->link->link; rear->link->link = s->link; free(s);1Key:(4)5、设双向循环链表中结点的结构为(data, prior, next),且不带表头结点。
数据结构试题(含答案)讲解
数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。
2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若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 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。
10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。
A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。
数据结构试题集(8套卷子+答案)
《数据结构》试卷一一、填空题:(共20分)1、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用存储结构。
2、队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是。
3、在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。
4、二叉树的前序遍历序列等同于该二叉树所对应森林的遍历序列5、对一棵二叉排序树,若以遍历该树,将得到一个以关键字递增顺序排列的有序序列。
6、三个结点a,b,c组成二叉树,共有种不同的结构。
7、在AVL树中,由于在A结点的右孩子的右子树上插入结点,使A结点的平衡因子由-1变为-2,使其失去平衡,应采用型平衡旋转。
8、图的遍历有两种,它们是。
9、堆排序的时间复杂度为。
10、在含有N个结点的二叉链表中有空链域,通常用这些空链域存储线索,从而得另一种链式存储结构----线索链表。
二、单项选择题(共20分)1、若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是()(A)2,4,1,3(B)3,1,4,2(C)3,4,1,2(D)1,2,3,42、有一棵非空的二叉树,(第0层为根结点),其第i层上最多有多少个结点?()(A)2i(B)21-i(C)21+i(D) i3、设电文中出现的字母为A,B,C,D,E,每个字母在电文中出现的次数分别为9,27,3,5,11,按huffman编码,则字母A编码为()(A)10(B)110(C)1110(D)11114、下面关于数据结构的叙述中,正确的叙述是()(A)顺序存储方式的优点是存储密度大,且插、删除运算效率高(B)链表中每个结点都恰好包含一个指针(C)包含n个结点的二叉排序树的最大检索长度为logn2(D)将一棵树转为二叉树后,根结点无右子树5、程序段:y:=0while n>=(y+1)*(y+1) doy:=y+1enddo的时间复杂度为()(A)O(n) (B)O(n2) (C)O(n2/1) (D)O(1)6、排序方法中,关键码比较的次数与记录的初始排列无关的是( )(A) shell排序 (B) 归并排序 (C) 直接插入排序 (D) 直接选择排序7、数组q[0..n-1]作为一个环行队列,f 为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数总小于n,则队列中元素个数为( )(A) r-f (B) n+f-r (C) n+r-f (D) (n+r-f) mod n8、为了有效的利用散列查找技术,需要解决的问题是:( )Ⅰ:找一个好的散列函数Ⅱ:设计有效的解决冲突的方法Ⅲ:用整数表示关键码值(A) Ⅰ和Ⅲ (B) Ⅰ和Ⅱ (C) Ⅱ和Ⅲ (D) Ⅰ,Ⅱ和Ⅲ9、引入线索二叉树的目的是()(A) 加快查找结点的前驱或后继的速度(B) 为了能在二叉树中方便的进行插入与删除(C) :为了能方便的找到双亲(D) 使二叉树的遍历结果唯一10、用二分(折半)查找表的元素的速度比用顺序法()(A) 必然快(B) 必然慢(C): 相等(D): 不能确定三、简答题:(共40分)1、已知某二叉树按中序遍历序列为BFDAEGC,按前序遍历序列为ABDFCEG,试画出该二叉树形状,并写出它的后序遍历序列。
数据结构考试题目
数据结构考试题⽬数据结构49道题1. 数据结构是⼀门研究什么内容的学科?2. 数据元素之间的关系在计算机中有⼏种表⽰⽅法?各有什么特点?3. 数据类型和抽象数据类型是如何定义的。
⼆者有何相同和不同之处,抽象数据类型的主要特点是什么?使⽤抽象数据类型的主要好处是什么?5.评价⼀个好的算法,您是从哪⼏⽅⾯来考虑的?8.对于⼀个数据结构,⼀般包括哪三个⽅⾯的讨论?9. 当你为解决某⼀问题⽽选择数据结构时,应从哪些⽅⾯考虑?11.数据结构与数据类型有什么区别?15. 在编制管理通讯录的程序时, 什么样的数据结构合适? 为什么?18.设计⼀数据结构,⽤来表⽰某⼀银⾏储户的基本信息:账号、姓名、开户年⽉⽇、储蓄类型、存⼊累加数、利息、帐⾯总数。
19. 请在下列算法的横线上填⼊适当的语句。
FUNCTION inclusion(ha,hb:linklisttp):boolean;{以ha 和hb 为头指针的单链表分别表⽰有序表A 和B,本算法判别表A 是否包含在表B 内,若是,则返回“true”,否则返回“false”}BEGINpa:=ha^.next; pb:=hb^.next; (1) ;WHILE(2) DOIF pa^.data=pb^.data THEN(3) ELSE(4) ;(5)END;20.完善算法:已知单链表结点类型为:TYPE ptr=^node;node=RECORDdata:integer; next:ptrEND;过程create 建⽴以head 为头指针的单链表。
PROCEDURE create ( (1) );VAR p,q:ptr; k:integer;BEGINnew(head); q:=head;read(k);WHILE k>0 DOBEGIN(2); (3); (4); (5);read(k)END;q^.next:=NIL;END;22.假设链表p 和链表q 中的结点值都是整数,且按结点值的递增次序链接起来的带表头结点的环形链表。
数据结构习题集(包含全部答案)
数据结构习题集(包含全部答案)数据结构习题集(自编)第一章绪论一、选择题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、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
数据结构课程设计-学生-21个题目
选题一:迷宫与栈问题【问题描述】以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
【任务要求】1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。
求得的通路以三元组(i,j,d)的形式输出。
其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。
2)编写递归形式的算法,求得迷宫中所有可能的通路。
3)以方阵形式输出迷宫及其通路。
【测试数据】迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。
出口出口选题二:算术表达式与二叉树【问题描述】一个表达式和一棵二叉树之间,存在着自然的对应关系。
写一个程序,实现基于二叉树表示的算术表达式的操作。
【任务要求】假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。
实现以下操作:1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E。
3)Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。
4)Value(E)—对算术表达式E求值。
5)CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2)【测试数据】1)分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。
2)每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。
选题三:银行业务模拟与离散事件模拟【问题描述】假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。
数据结构 复习题
数据结构填空题:1、对于一个以顺序实现的循环队列 Q[0,… ,m-1], 队首、队尾指针分别front和rear,其判空的条件是(),判满的条件()。
2、数据结构有线性结构、树结构、( )、()等几种逻辑结构。
3、衡量一个算法的优劣主要看它的()效率和()效率。
4、在二叉树中,指针p所指结点为叶子结点的条件是()同时()。
5、对于n个顶点的有向图,采用邻接矩阵表示,求图中边数的方法是(),判断任意两个顶点i和j是否有边连通的方法是( ),求任意一个顶点的度的方法是()。
6、Dijkstra算法从源点到其余各顶点的最短路径的路径长度按()次序依次产生。
选择题:1、有一组数据{15,9,7,8,20,-1,7,4},用堆排序的筛选方法建立的初始堆为()。
A、{-1,4,8,9,20,7,15,7}B、{-1,7,15,7,4,8,20,9}C、{-1,4,7,8,20,15,7,9}D、以上都不对。
2、对关键字{28,16,32,12,60,2,5,72}序列进行快速排序,第一趟一次划分结果为()。
A、(2,5,12,16)26(60,32,72)B、(5,16,2,12)28(60,32,72)C、(2,16,12,5)28(60,32,72)D、(5,16,2,12)28(32,60,72)3、以下排序方法中,()不需要进行关键字的比较。
A、快速排序B、归并排序C、基数排序D、堆排序4、在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行()。
A、s->next=p->next;p->next=s;B、p->next=s; s->next=q;C、p->next= s->next; s->next=p;D、q->next=s; s->next=p.5、向一个长度为n的顺序表中插入一个新元素的平均时间复杂度为()。
数据结构试题及答案(10套最新)
数据结构试题及答案(10套最新)数据结构试题及答案(10套最新)第一套试题:问题一:什么是数据结构?数据结构的作用是什么?回答:数据结构是一种组织和存储数据的方式,它关注数据元素之间的关系以及对数据元素的操作。
数据结构的作用包括提供高效的数据存储和访问方式,减少资源消耗,简化问题的解决方法,提高算法的性能和程序的可读性。
问题二:请列举几种常见的线性数据结构,并简要介绍它们的特点。
回答:常见的线性数据结构包括数组、链表和栈。
数组是一种连续存储数据元素的结构,具有随机访问的特点;链表是一种通过指针相连的数据元素,可以灵活地插入和删除元素;栈是一种遵循先进后出原则的数据结构,常用于解决递归问题。
问题三:请说明二叉树的定义及其性质。
回答:二叉树是一种特殊的树形数据结构,每个节点最多有两个子节点。
二叉树具有以下性质:每个节点最多有两个子节点,分别称为左子节点和右子节点;左子树和右子树都是二叉树;二叉树的节点个数为n,边的个数为n-1。
问题四:在数组中查找一个元素的时间复杂度是多少?为什么?回答:在数组中查找一个元素的时间复杂度是O(n),其中n是数组的长度。
因为在数组中查找元素需要按照索引一个一个比较,最坏情况下需要比较n次才能找到目标元素。
问题五:请解释堆排序算法的原理及时间复杂度。
回答:堆排序算法利用堆这种数据结构进行排序。
首先将待排序的元素构建成一个大顶堆,然后将堆顶元素与最后一个元素交换,继续调整堆,再取出堆顶元素与倒数第二个元素交换,依次执行,最后得到从小到大排序的序列。
堆排序的时间复杂度为O(nlogn)。
第二套试题:问题一:请解释图的邻接矩阵和邻接表表示法。
回答:图的邻接矩阵表示法是使用二维数组来表示图的连接关系,数组中的元素表示相应节点之间的边的关系。
邻接表表示法使用链表来表示图的连接关系,链表中的元素表示相邻节点之间的边的关系。
问题二:请说明深度优先搜索算法的原理及其应用。
回答:深度优先搜索(DFS)算法是一种遍历或搜索图的算法,其原理是从起始节点开始,依次深入到尽可能远的节点,直到无法继续深入为止,然后回溯到上一个节点,再继续深入其他未访问过的节点。
《数据结构》习题集
《数据结构》习题集第一章序论思考题:1。
1简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型、抽象数据类型作业题:1。
2设有数据结构(D,R),其中D={d1, d2, d3, d4}R={r1,r2}r1={<d1, d2〉,<d2,d3>,<d3,d4〉,〈d1, d4>,〈d4,d2>, 〈d4, d1〉}r2={(d1, d2),(d1,d3),(d1, d4),(d2, d4), (d2, d3)}试绘出其逻辑结构示意图。
1。
3设n是正整数。
试写出下列程序段中用记号“△”标注的语句的频度: (1)i=1; k=0;while(i〈=n-1){△k+=10*i;i++;}(2) i=1; k=0;do {△k+=10*i;i++;}while(i〈=n-1)(3)i=1; k=0;do {△k+ = 10*i; i++;}while(i==n);(4) i=1; j=0;while(i+j≤n) {△if(i〈j) i++;else j++;}(5) x=n; y=0; //n是不小于1的常数while(x〉=(y+1)*(y+1)){△y++;}(6)x=91; y=100;while ( y>0 ){△if(x>100) { x—=10; y——; }else x++ ;}(7) for( i=0; i〈n; i++)for( j=i; j〈n; j++)for( k=j; k〈n; k++)△x+=2;1。
4 试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z的值。
1.5 已知k阶斐波那契序列的定义为:f0=0,f1=0,……,f k—2=0,f k—1=1;f n=f n—1+f n-2+……+f n-k, n=k,k+1,……试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。
数据结构试题(含答案)
数据结构试题(含答案)一.是非题(勾选“√“用于更正和勾选”√1.数据结构可用三元公式(D,s,P)表示,其中:D为数据对象,s为D上的关系,p是对d的基本操作集。
×2.线性表的链式存储结构具有直接访问表中任何元素的优点。
×3. 字符串是特定于数据对象的线性表。
4.二叉树是一棵结点的度最大为二的树。
×5.邻接多表可用于表示无向图或有向图。
×6. 所有顶点的拓扑序都可以从任何有向图中得到。
× 7. 无向连通图的生成树是其最大连通子图。
× 8. 二叉排序树的搜索长度最多为log2n。
×9.对于一棵m阶的b-树.树中每个结点至多有m个关键字。
除根之外的所有非终端结点至几乎没有┌ M/2┌ 关键词。
×10.对于目前所知的排序方法,快速排序具有最好的平均性能。
11.顺序存储模式具有存储密度高、插入和删除操作效率高的优点。
× 12. 二维数组是一个线性表,其数据元素是线性表。
13.连通图g的生成树是一个包含g的所有n个顶点和n-1条边的子图。
×14.折半查找不适用于有序链表的查找。
15.完全二叉树必定是平衡二叉树。
16.中间顺序线索二叉树的优点是,在中间顺序下很容易找到直接前导节点和直接后继节点。
17.队列是一种完全不同于线性表的数据结构。
× 18. 平均搜索长度与记录的搜索概率有关。
19.二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。
×20.算法的时间复杂度越高,可读性越差;相反,算法的可读性越好,时间复杂度越差。
×二.选择题1.如果编号为1、2和3的列车车厢依次通过开关堆调度,则无法获得(E)的顺序。
a:1,2,3b:1,3,2c:2,1,3d:2,3,1e:3,1,2f:3,2,12.递归程序可借助于(b)转化为非递归程序。
a:线性表B:堆栈C:队列D:数组3.在下列数据结构中(c)具有先进先出(fifo)特性,(b)它具有先进先出的特点。
数据结构习题1
第1章绪论一、选择题1.数据结构被形式定义为(D,S),其中D是(B)的有限集合,S是D上的(H)有限集合。
A、算法B、数据元素C、数据操作D、逻辑关系E、操作F、映象G、存储H、关系2.数据结构是一门研究非数值计算的程序设计问题中计算机的(A)以及它们之间的(B)和运算的学科。
(1)A、操作对象B、计算方法C、逻辑存储D、数据映象(2)A、结构B、关系C、运算D、算法3.算法分析的目的是(D),算法分析的二个主要方面是(C)。
A、给出数据结构的合理性B、研究算法中输入输出的关系C、空间复杂性和时间复杂性D、分析算法的效率以求改进E、正确性和简明性F、分析算法的易懂性和文档性4.在数据结构中,从逻辑上可以把数据结构分成(C)。
A、动态和静态结构B、紧凑接和非紧凑结构C、线性与非线性结构D、内部结构和外部结构5.计算机算法指的是(C),它必具备输入、输出和(E)5 个特性。
A、计算方法B、排序方法C、解决问题的有限运算序列D、可行性、可移植性和可扩充性E、可行性、确定性和有穷性6.线性表的顺序存储结构是一种(A)的存储结构,线性表的链式存储结构是一种(B)。
A、随机存取B、顺序存取C、索引存取D、散列存取7.算法的时间复杂度取决于(A)。
A、问题的规模B、待处理数据的初态C、问题的规模和待处理数据的初态8.线性表若采用链表存储结构时,要求内存中可用存储单元的地址(D)。
A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续不连续都可以9.在以下的叙述中,正确的是(B)。
A、线性表的顺序存储结构优于链式存储结构B、二维数组是它的每个数据元素为一个线性表的线性表C、栈的操作方式是先进先出D、队列的操作方式是先进后出10.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式。
以下解释错误的是 (A )。
A、集合中任何两个结点之间都有逻辑关系但组织形式松散B、线性结构中结点按逻辑关系依次排列形成一条"锁链"C、树形结构具有分支、层次特性,其形态有点像自然界中的树D、图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接11.以下说法正确的是(D )。
数据结构试题及答案
一、判断1.带表头节点的双向循环链表为空时,表头的前驱和后继指针指向HEAD。
2.带表头结点的双向链表为空时,表头的前趋和后继指针分别指向NULL。
3.带表头结点的双向循环链表为空时,表头的前驱和后继指针分别指向NULL4.环形链表是线性结构,首尾相连,使用连续地址储存。
5.环形队列是线性结构,但它不是环形,利用特殊的循环算法解决“假溢出”。
6.环形队列是线性结构,象循环链表一样头尾相连接,它能解决“假溢出”。
7.环形队列是线性结构,能利用特殊的循环算法解决“假溢出”。
8.广义表E(a ,E)的表长是2,表深度是无穷大。
9.广义表E(a ,E)的表深度是2,表长是2。
10.广义表G(a ,G)的表深度是2,表长是2。
11.广义表G(a ,G)的深度是2,表长是2。
12.满BT是特殊的BT树,它的定义是递归的。
13.BT是特殊的树,它的定义是递归的。
14.平衡树是特殊的BT树,它的定义是递归的。
15..若已知BT的先根序和中根序、后根序和中根序,可唯一确定一个BT。
16.若已知BT的先根序遍历和后根序遍历,可唯一确定一个BT。
17.平衡BT是特殊的BT,它的定义是递归的。
18.BST是特殊的BT,它的中序遍历是有序的。
19.何时使用PRIM法,何时使用KRUSKAL法取决于图是稀疏还是稠密20.PRIM和KRUSKAL均可以对图求MST,但是PRIM法方便。
21.希尔排序是插入排序的变型,插入排序是稳定的,但希尔排序是不稳定的。
22.希尔排序是插入排序的变型。
插入排序是稳定的,所以希尔排序是稳定的。
23.快速排序的稳定性取决于枢轴的选择。
24.快速排序的枢轴有多种选择方法,取首尾节点是较简单的做法。
25.冒泡排序不但稳定,而且速度很快。
二、名词解释与问答26.线性结构:唯一的首节点,唯一的尾节点,除首尾外其它节点既有前驱也有后继,首无前驱,尾无后继。
27.线性结构中端操作受限的含义是什么?操作仅在指定的位置。
数据结构算法设计题及答案
数据结构算法设计题及答案在计算机科学领域,数据结构和算法是至关重要的概念。
数据结构是一种组织和存储数据的方式,而算法是解决问题和执行任务的步骤和规则。
合理设计的数据结构和高效的算法可以提高程序的性能和效率,对于解决各种复杂问题和优化问题解决过程至关重要。
本文将介绍几个典型的数据结构算法设计题,并给出相应的答案。
1. 题目:实现一个栈数据结构并提供以下操作:入栈(push)、出栈(pop)、获取栈顶元素(top)、判断栈是否为空(isEmpty)。
解答:栈是一种后进先出(LIFO)的数据结构。
可以使用数组或链表来实现。
```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if self.isEmpty():return Nonereturn self.stack.pop()def top(self):if self.isEmpty():return Nonereturn self.stack[-1]def isEmpty(self):return len(self.stack) == 0```2. 题目:实现一个队列数据结构并提供以下操作:入队(enqueue)、出队(dequeue)、获取队头元素(front)、判断队列是否为空(isEmpty)。
解答:队列是一种先进先出(FIFO)的数据结构。
可以使用数组或链表来实现。
```pythonclass Queue:def __init__(self):self.queue = []def enqueue(self, item):self.queue.append(item)def dequeue(self):if self.isEmpty():return Nonereturn self.queue.pop(0)def front(self):if self.isEmpty():return Nonereturn self.queue[0]def isEmpty(self):return len(self.queue) == 0```3. 题目:实现一个链表数据结构,并提供以下操作:插入节点(insert)、删除节点(delete)、查找节点(search)。
数据结构习题集
7
对于一个具有 n 个结点的单链表,在已知的结点*p 后插入一个新结点的时间复杂度 为 ,在给定值为 x 的结点后插入一个新结点的时间复杂度为 ___。
8. 在顺序表中访问任意一结点的时间复杂度均为 的数据结构。
9、线性链表不具有的特点是( ) 。 A.随机访问 C.插入与删除时不必移动元素
,因此顺序表也称为
17.双循环链表中,任意一结点的后继指针均指向其逻辑后继。(对还是错)
18、线性表L在
情况下适用于使用链式结构实现。 B、需不断对L进行删除插入 D、L中结点结构复杂 )
A、需经常修改L中的结点值 C、L中含有大量的结点
19 若某线性表中最常用的操作是取第 i 个元素和找第 i 个元素的前趋元素, 则采用 ( 存储方式最节省时间。 ①单链表 ②双链表 ③单向循环 ④顺序表
3. 在双向链表指针 p 的结点前插入一个指针 q 的结点操作是( A. p->Prior=q;q->Next=p;p->Prior->Next=q;q->Prior=p->Prior; B. p->Prior=q;p->Prior->Next=q;q->Next=p;q->Prior=p->Prior; C. q->Next=p;q->Prior=p->Prior;p->Prior->Next=q;p->Prior=q; D. q->Prior=p->Prior;q->Next=p;p->Prior=q;p->Prior->Next=q;
第 4 章 数组 知识点:二维数组的存储、特殊矩阵
1. 假设有二维数组 A6×8,每个元素用相邻的 6 个字节存储,存储器按字节编址。 已知 A 的起始存储位置 (基地址) 为 1000, 则数组 A 的体积 (存储量) 为 ; 末尾元素 A57 的第一个字节地址为 ;若按行存储时,元素 A14 的第一 个字节地址为 ;若按列存储时,元素 A47 的第一个字节地址 为 。
数据结构考试题
一、单项选择1.数据结构是一门研究非数值计算的程序设计问题中,数据元素的①C、数据信息在计算机中的②A以及一组相关的运算等的课程。
①A.操作对象B.计算方法C.逻辑结构D.数据映象②A.存储结构B.关系C.运算D.算法2.以下数据结构中, D 是线性结构。
A.广义表B.二叉树C.稀疏矩阵D.串3.从逻辑上可以把数据结构分为 C 两大类。
A.动态结构和静态结构B.顺序结构和链式结构C.线性结构和非线性结构D.初等结构和构造型结构4.以下数据结构中, D 是线性结构。
A.广义表B.二叉树C.稀疏矩阵D.串5.以下数据结构中, D 是非线性结构。
A.栈B.二叉树C.队列D.字符串6.数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①B的有限集合,R是D上的②D有限集合。
①A.算法B.数据元素C.数据操作D.数据对象②A.操作B.映象C.存储D.关系7.线性表的顺序存储结构是一种① A 的存储结构, 线性表的链式存储结构是一种的② B 存储结构。
A.随机存取B.顺序存取C.索引存取D.散列存取8.线性表的逻辑顺序与存储顺序总是一致的,这种说法__B_。
A. 正确B. 不正确9.下面那一条是顺序存储结构的优点? (A)A . 存储密度大 B. 插入运算方便 C. 删除运算方便D. 可以方便的用于各种逻辑结构的存储表示10.线性表采用链式存储结构时, 要求内存中可用的存储单元的地址.A . 必须是连续的 B. 部分地址必须是连续的 C. 一定不连续D. 连续和不连续都可以11.表长为n的顺序存储的线性表, 当在任何位置上插入和删除一个元素的概率相等时, 插入一个元素所需要移动元素的平均次数为E , 删除一个元素所需要移动元素的平均次数为 AA.(n-1)/2B.nC. n+1D. n-1E. n/2F. (n+1)/2G. (n-2)/212.带头结点的单链表head为空的判定条件是_B___。
数据结构试卷试卷及答案5套
数据结构试卷试1一、解释下列术语(每小题4分,共20分)1. 头指针2. 二叉排序树的定义3. 头结点4. 数据的逻辑结构5. 排序方法的稳定性二、选择填空(每小题2分,共20分)(在每小题的4 个备选答案中,选出一个正确的答案,多选少选均不得分)1. 在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时顺向后移动( ) 个元素A.n-iB. n-i+1C. n-i-1D.i2. 某个栈的输入序列为1,2,3,4,下面的四个序列中( )不可能是它的输出序列A.1,2,3,4B.2,3,4,1C. 4,3,2,1D.3,4, 1,23. 对二叉排序进行( )遍历可以得到结点的排序序列A.前序B.中序C. 后序D.按层次4.有64个结点的完全二叉树的深度为()。
A 8B 7C 6D 55.折半查找法的时间复杂度是( )A.(n2)B.O(n)C. O(n㏒n)D. O(㏒n)6.A(1:5,1:6)的每个元素占5个单元,将其按行优先次序储存在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为()。
A 1140B 1145C 1120D 11257. 有n个叶子结点的哈夫曼树的结点总数为()。
A 不确定B 2nC 2n+1D 2n-18. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac, 则它的前遍历序列是()。
A acbedB decabC deabcD cedba9.若循环队列用数组A(0:m-1)存放其元素值,已知其头、尾指针分别是f和r,则当前队列中的元素个数是()。
A (r-f+m)mod mB r-f+1C r-f-1D r-f10. 一个二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树(树中结点个数大于1)。
A 空或只有一个结点B 高度等于其结点数C 任一结点无左孩子 D任一结点无右孩子三,判断题(每小题2分,对的打√,错的打×,共10分)1.若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条(其中n为G的顶点数)。
数据结构习题集(2022)
数据结构习题集(2022)第一章绪论1.下面是几种数据的逻辑结构S=(D,R),分别画出对应的数据逻辑结构,并指出它们分别属于何种结构。
D={a,b,c,d,e,f}R={r}(a)r={,,,,}(b)r={,,,,}(c)r={,,,,}2.分析下列程序段的时间复杂度(a)for(i=0;ifor(j=0;jfor(i=0;ifor(j=0;jWhile(i3.在数据结构中,与所使用的计算机无关的是A.存储结构B.物理结构C.物理和存储结构D.逻辑结构4.非线性结构中每个结点A.无直接前驱结点B.只有一个直接前驱和直接后继结点C.无直接后继结点D.可能有多个直接前驱和多个直接后继结点5.可以把数据的逻辑结构划分成A.内部结构和外部结构B.动态结构和静态结构C.紧凑结构和非紧凑结构D.线性结构和非线性结构6.算法的时间复杂度取决于()。
A.问题的规模B.待处理数据的初态C.A和B7.计算机算法指的是(),它必须具备()这三个特性。
(1)A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法(2)A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性第二章线性表一、单项选择题1.下面关于线性表叙述中,错误的是_(1)_。
(1):A.顺序表必须占用一片地址连续的存储单元B.链表不必占用一片地址连续的存储单元C.顺序表可以随机存取任一元素D.链表可以随机存取任一元素2.在表长为n的单链表中,算法时间复杂度为O(n)的操作是(2)。
(2):A.查找单链表中第i个结点B.在p结点之后插入一个结点C.删除表中第一个结点D.删除p结点的直接后继结点3.单链表的存储密度(3)(3):A.大于1B.等于1C.小于1D.不能确定4.在表长为n的顺序表中,算法的时间复杂度为O(1)的操作是(4)(4):A.在第n个结点之后插入一个结点B.在第i个结点前插入一个新结点C.删除第i个结点D.求表长5.在下列链表中不能从当前结点出发访问到其余各结点的是(5)。
数据结构复习资料
一、填空题1、栈的特点是先进后出(或后进先出),队列的特点是先进先出。
2、顺序表中逻辑上相邻的元素物理位置也相邻,单链表中逻辑上相邻的元素物理位置不相邻。
3、算法的5个重要特性是__________、__________、_________、___________、___________。
4、线性表、栈、队列都是线性结构,可以在线性表的任何位置插入和删除元素,对于栈只能在栈顶位置插入和删除元素,对于队列只能在队尾位置插入和只能在队头删除元素。
5、下面树的先序、中序、后续遍历的结果依次为_________、___________、__________6、当数据量特别大需借助外部存储器对数据进行排序时,则这种排序称为外部排序。
7、在堆排序、快速排序和归并排序中,若从节省存储空间的角度考虑,则应首先选取堆排序方法;若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下排序的速度来考虑,则应选取快速排序方法。
二、选择题1、算法分析的两个主要方面是()。
A. 时间复杂度和空间复杂度B. 正确性和简明性C. 可读性和文档性D. 健壮性和科学性2、对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择()最节省时间。
A. 顺序表B. 带头结点的双循环链表C. 单链表D. 带尾结点的单循环链表5、循环队列在进行删除运算时()A. 仅修改头指针B. 修改尾指针C. 头、尾指针都要修改D. 头、尾指针可能都要修改6、栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点7、树最适合用来表示()A.有序数据元素 B. 无序数据元素C.元素之间具有分支层次关系的数据 D. 元素之间无联系的数据8、如果结点A有3个兄弟,而且B是A的双亲,则B的度是()A. 4B. 5C. 1D. 39、有关二叉树下列说法正确的是()A. 二叉树的度为2B. 一棵二叉树的度可以小于2C. 二叉树中至少有一个结点的度为2D. 二叉树中任何一个结点的度都为210、一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A. 250B. 500C. 505D. 以上答案都不对11、静态查找表与动态查找表二者的根本差别在于(B)A. 它们的逻辑结构不一样B. 施加在其上的操作不同C. 所包含的数据元素的类型不一样D. 存储实现不一样12、顺序查找法适合于存储结构为(B)的线性表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本概念题:
4-1 设S1 =“Data Structure Course”,S2 =“Structure”,S3 =“Base”,求:(1)Length(S1);(2)Compare(S2, S3);
(3)Insert(S1, 5, S3);(4)Delete(S1, 5, 9);
(5)SubString(S1, 5, 9, T);(6)Search(S1, 0, S2);
(7)Replace(S1, 0, S2, S3)
4-2 什么叫串?串和字符在存储方法上有什么不同?空串和空格串是否相同,为什么?
4-3 串是由字符组成的,长度为1的串和字符是否相同。
为什么?
4-4 串是不定长的,表示串的长度有几种方法?C语言中的串采用哪种方法?
4-5 可以说串是数据类型固定为字符类型的线性表,但是串操作和线性表操作的主要不同之处在哪里?
4-6 可以用几种存储方法存储串?
4-7 分别写出串的静态数组存储结构和串的动态数组存储结构的结构体定义。
4-8 为什么动态数组结构下串的实现要增加撤消函数?
复杂概念题:
4-9 令t1=“aaab”, t2=“abcabaa”, t3=“abcaabbabcabaacba”,试分别求出他们的next[j]值。
4-10 简述模式匹配的Brute-Force算法思想。
简述模式匹配的KMP算法思想。
4-11 简述求子串的next[j]值的算法思想。
算法设计题:
4-12 设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。
要求比较结果有等于和不等于两种情况。
4-13 设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。
要求比较结果有大于、等于和小于三种情况。
4-14 设串采用动态数组存储结构,编写函数实现两个串的比较Compare(S, T)。
要求比较结果有大于、等于和小于三种情况。
对比本题和习题4-13的算法,说明串的静态数组存储结构和串的动态数组存储结构是否对编写串的比较算法有影响。
4-15 设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),即要求在主串S中,从位置start开始查找是否存在子串T,若主串S中存在子串T,则用子串V 替换子串T,且函数返回1;若主串S中不存在子串T,则函数返回0。
4-16 设字符串采用静态数组的顺序存储结构,
(1)编写算法删除字符串s中值等于ch的一个字符,并分析该算法的时间复杂度;
(2)编写算法删除字符串s中值等于ch的所有字符。
4-17 设字符串采用单字符的链式存储结构,编写删除串s从位置i开始长度为k的子串的算法。
*4-18 设字符串采用块链存储结构,编写删除串s从位置i开始长度为k的子串的算法。
上机实习题:
4-19 在4.4.3节例4-6的基础上,编写比较 Brute-Force算法和KMP算法比较次数的程序。
4-20 设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),即要求在主串S中,从位置start开始查找是否存在子串T,若主串S中存在子串T,则用
子串V替换子串T,且函数返回1;若主串S中不存在子串T,则函数返回0。
并要求设计主函数进行测试。
一个测试例子为:S =“I am a student”,T =“student”,V =“teacher”。
*4-21 对照4.4.3节的例4-6,编写比较 Brute-Force算法和KMP算法比较次数的程序。
要求:
(1)采用动态数组的顺序存储结构;
(2)自己重新设计对比测试的例子;
(3)对比静态数组存储结构和动态数组存储结构在程序设计方法的不同。