数据结构22 线性表的顺序存储结构
数据结构习题及答案
数据结构习题习题一一、选择题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、数据逻辑结构的四种基本类型中,线性结构_中的元素是一种一对一的关系,这种结构的特征是:若结构是非空集,则有且只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱和一个直接后继。
编译技术中常用的数据结构
编译技术中常用的数据结构一、线性表线性表是编译技术中常用的数据结构之一,它是一种能够按照线性顺序存储数据元素的数据结构。
线性表可以通过顺序存储结构或链式存储结构来实现。
1. 顺序存储结构顺序存储结构是将线性表的元素按照顺序存储在一块连续的存储空间中。
在编译技术中,顺序存储结构常用于存储符号表、常量表等数据结构。
通过数组来实现顺序存储结构,可以快速访问线性表的任意位置元素。
2. 链式存储结构链式存储结构是通过节点之间的指针链接来实现线性表的存储。
在编译技术中,链式存储结构常用于存储中间代码、语法树等数据结构。
链式存储结构灵活性较高,可以动态地分配和释放存储空间。
二、栈栈是一种具有后进先出(LIFO)特性的线性表。
在编译技术中,栈常用于处理函数调用、表达式求值等场景。
栈的基本操作包括入栈和出栈。
入栈将元素压入栈顶,出栈将栈顶元素弹出。
编译技术中,栈还常用于处理函数的局部变量、函数的三、队列队列是一种具有先进先出(FIFO)特性的线性表。
在编译技术中,队列常用于处理优化算法、指令调度等场景。
队列的基本操作包括入队和出队。
入队将元素插入队尾,出队将队头元素移除。
编译技术中,队列还常用于处理指令流水线、任务调度等问题。
四、树树是一种非线性的数据结构,它由若干个节点组成,节点之间通过边连接。
在编译技术中,树常用于构建语法树、抽象语法树等数据结构。
树的基本概念包括根节点、叶子节点和内部节点。
树的遍历方式有前序遍历、中序遍历和后序遍历。
编译技术中,树的遍历常用于语法分析、语义分析等阶段。
五、图图是一种由节点和边组成的非线性数据结构。
在编译技术中,图常用于构建控制流图、数据依赖图等数据结构。
图的基本概念包括顶点、边和路径。
图可以分为有向图和无向图,还可以带有权重。
编译技术中,图的遍历常用于寻找程序中的循环、六、哈希表哈希表是一种通过哈希函数将关键字映射到存储位置的数据结构。
在编译技术中,哈希表常用于符号表、常量表等数据结构。
《数据结构》题库及答案
《数据结构》题库及答案一、选择题1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。
a. 随机存储;b.顺序存储;c. 索引存取;d. HASH 存取2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。
a. edcba;b. decba;c. dceab;d.abcde3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。
a. 4,3,2,1;b. 1,2,3,4;c. 1,4,3,2;d.3,2,4,14.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。
a. s->nxet=p->next; p->next=s;b. p->next=s->next; s->next=p;c. q->next=s; s->next=p;d. p->next=s; s->next=q;5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。
a.联接b.模式匹配c.求子串d.求串长6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。
a. 90b.180c.240d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。
a. p->lch==NULLb. p->ltag==1c. p->ltag==1且p->lch=NULLd. 以上都不对8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______A 、(A ,B ,C ,D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D )9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。
2022年忻州师范学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年忻州师范学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、n个结点的完全有向图含有边的数目()。
A.n*nB.n(n+1)C.n/2D.n*(n-1)2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.NB.2N-1C.2ND.N-13、线性表的顺序存储结构是一种()。
A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构4、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。
A.543612B.453126C.346521D.2341565、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)B.O(n+e)C.O(n*n)D.O(n*n*n)6、已知关键字序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后的小根堆是()。
A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,197、下列关于无向连通图特性的叙述中,正确的是()。
Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ8、一个具有1025个结点的二叉树的高h为()。
A.11B.10C.11至1025之间D.10至1024之间9、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。
A.107B.108C.214D.21510、数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的()的两趟排序后的结果。
A.选择排序B.起泡排序C.插入排序D.堆排序二、填空题11、在有n个顶点的有向图中,每个顶点的度最大可达______。
820数据结构考研大纲
820数据结构考研大纲导言本文档旨在全面介绍考研数据结构科目的大纲,帮助考生更好地准备考试。
将按照大纲的结构,详细阐述每个知识点的内容和要求。
第一章概述1.1数据结构的定义数据结构是指数据对象中元素之间的关系,是在计算机中组织和存储数据的方式。
1.2数据结构的基本概念数据结构的基本概念包括数据、数据元素、数据项、数据对象、逻辑结构和物理结构等。
1.3数据结构的分类数据结构可以根据不同的特点进行分类,包括线性结构、非线性结构、集合结构、树结构和图结构等。
第二章线性表2.1线性表的定义和特性线性表是一种包含有限个数据元素的序列,具有前驱和后继关系。
2.2线性表的顺序存储结构线性表的顺序存储结构是利用一段连续的存储单元存储线性表的元素。
2.3线性表的链式存储结构线性表的链式存储结构是通过节点之间的链接关系来存储线性表的元素。
2.4线性表的操作线性表的操作包括插入、删除、查找等基本操作,以及合并、拆分等高级操作。
第三章栈和队列3.1栈的定义和特性栈是一种特殊的线性表,只能在表的一端进行插入和删除操作,遵循先进后出的原则。
3.2栈的顺序存储结构栈的顺序存储结构利用数组来实现,通过栈顶指针来指示栈顶元素。
3.3栈的链式存储结构栈的链式存储结构利用链表来实现,通过指针来指示栈顶元素。
3.4栈的应用栈在计算表达式、递归实现、迷宫求解等方面有广泛的应用。
第四章串和数组4.1串的定义和特性串是由零个或多个字符组成的有限序列,是一种特殊的线性表。
4.2串的存储结构串的存储结构包括顺序存储结构和链式存储结构。
4.3串的操作串的操作包括定位操作、模式匹配操作、替换操作等。
4.4数组的定义和特性数组是相同类型数据元素的有序集合,可以通过下标来访问元素。
第五章树和二叉树5.1树的定义和基本概念树是由n(n>=0)个节点组成的有限集合,其中一个节点被称为根节点。
5.2树的存储结构树的存储结构包括双亲表示法、孩子表示法、孩子兄弟表示法等。
2022年湘南学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年湘南学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、n个结点的完全有向图含有边的数目()。
A.n*nB.n(n+1)C.n/2D.n*(n-1)2、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串B.树C.广义表D.栈3、线性表的顺序存储结构是一种()。
A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构4、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。
A.543612B.453126C.346521D.2341565、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。
A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都可能要修改D.队头、队尾指针都要修改6、若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是()。
7、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1) mod (M-1)8、有n(n>0)个分支结点的满二叉树的深度是()。
A.n2-1B.log2(n+1)+1C.log2(n+1)D.log2(n-l)9、一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足()。
数据结构(C++版)课后答案 (王红梅)第2章 线性表
第 2 章线性表课后习题讲解1. 填空⑴在顺序表中,等概率情况下,插入和删除一个元素平均需移动()个元素,具体移动元素的个数与()和()有关。
【解答】表长的一半,表长,该元素在表中的位置⑵顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是()。
【解答】108【分析】第5个元素的存储地址=第1个元素的存储地址+(5-1)×2=108⑶设单链表中指针p 指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。
【解答】p->next=(p->next)->next⑷单链表中设置头结点的作用是()。
【解答】为了运算方便【分析】例如在插入和删除操作时不必对表头的情况进行特殊处理。
⑸非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足()。
【解答】p->next=head【分析】如图2-8所示。
⑹在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是();删除开始结点的操作序列为()。
【解答】s->next =rear->next; rear->next =s; rear =s;q=rear->next->next; rear->next->next=q->next; delete q;【分析】操作示意图如图2-9所示:⑺一个具有n个结点的单链表,在指针p所指结点后插入一个新结点的时间复杂度为();在给定值为x的结点后插入一个新结点的时间复杂度为()。
【解答】Ο(1),Ο(n)【分析】在p所指结点后插入一个新结点只需修改指针,所以时间复杂度为Ο(1);而在给定值为x的结点后插入一个新结点需要先查找值为x的结点,所以时间复杂度为Ο(n)。
⑻可由一个尾指针唯一确定的链表有()、()、()。
【解答】循环链表,循环双链表,双链表2. 选择题⑴线性表的顺序存储结构是一种()的存储结构,线性表的链接存储结构是一种()的存储结构。
线性表的链式存储结构
线性表的链式存储结构
线性表的链式存储结构是指用一组任意的存储单 元(可以连续,也可以不连续)存储线性表中的数据 元素。为了反映数据元素之间的逻辑关系,对于每个 数据元素不仅要表示它的具体内容,还要附加一个表 示它的直接后继元素存储位置的信息。假设有一个线 性表(a,b,c,d),可用下图2所示的形式存储:
27
p
s
图 2-9
28
完整的算法:
int DuListInsert(DuLinkList *L,int i,EntryType e)
if (L.head->next==NULL) return TRUE; else return FALSE; }
12
6. 通过e返回链表L中第i个数据元素的内容 void GetElem(LinkList L,int i,EntryType *e) {
LNode *p; int j; //j为计数器,记载所经过的结点数目 if (i<1||i>ListLength(L)) exit ERROR; //检测i值的合理性 for (p=L.head,j=0; j!=i;p=p->next,j++); //找到第i个结点 *e=p->data; //将第i个结点的内容赋给e指针所指向的存储单元中 }
10
4. 求链表L的长度
int ListLength(LinkList L)
{
LNode *p;
int len;
for(p=L.head, len=0;p->next==NULL; p=p->next,len++);
return(len);
循环条件表达式 重复执行的语句
数据结构综合题参考答案
数据结构综合题参考答案数据结构综合题部分参考答案(仅供参考)⼀、填空1、⼀个算法的效率可分为_____时间_________效率和______空间________效率。
,2、栈的特点是_____先进后出______,队列的特点是_____先进先出________。
、3、在线性表的顺序存储结构中,若每个元素占L个存储单元,则第i个元素ai的存储位置为LOC(ai)=LOC(a1)+ ____(i-1)*L________。
4、已知⼀棵完全⼆叉树共139个结点,按照层次从左到右进⾏编号,根结点编号为1,则编号为60的左孩⼦编号为_____120_________右孩⼦编号为____121__________双亲编号为____30__________。
、、5、已知P为单链表中的⾮⾸尾结点,在P结点后插⼊S结点的语句为:__ s->next=p->next; p-next=s;___。
6、在各种查找⽅法中,平均查找长度与结点个数n⽆关的查法⽅法是______哈希表查找法________。
7、算法时间复杂度的分析通常有两种⽅法,即__事后统计_________和___事前估计________的⽅法,通常我们对算法求时间复杂度时,采⽤后⼀种⽅法。
8、已知元素序列E,F,G,H,I,J,K,L,M,N经过操作XXYXXYXYXYYXXYXYYYXY以后的出栈序列(注X表⽰⼊栈,Y表⽰出栈)_____ FHIJGLMKEN _________。
9、设数组A[1..10,1..8]的基地址为2000,每个元素占2个存储单元,若以⾏序为主序顺序存储,则元素A[4,5]的存储地址为____2056_______;若以列序为主序顺序存储,则元素A[4,5]的存储地址为_2086______。
10、⼀个⼆叉树中叶⼦结点3个,度为1的结点4个,则该⼆叉树共有___9____个结点。
11、在图G的邻接表表⽰中,每个顶点邻接表中所含的结点数,对于⽆向图来说等于该顶点的__度_____,对于有向图来说等于该顶点的____出度_____。
《数据结构及其应用》笔记含答案 第二章_线性表
第2章线性表一、填空题1、线性结构反映结点间的逻辑关系是一对一的。
2、线性结构的特点:1)只有一个首结点和尾结点2)除首尾结点外,其他结点只有一个直接前驱和一个直接后继3、线性表的顺序表示又称为顺序存储结构。
4、结点只有一个指针域的链表,称为单链表。
5、首尾相接的链表称为循环链表。
6、线性表的链式表示又称为非顺序映像。
7、指向链表中第一个结点的指针称为头指针。
8、链表中存储第一个数据元素的结点称为首元结点。
二、判断题1、线性表的逻辑顺序与存储顺序总是一致的。
(╳)2、顺序存储的线性表可以按序号随机存取。
(√)3、顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。
(╳)4、线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
(√)5、在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。
(╳)6、在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
(√)7、线性表的链式存储结构优于顺序存储结构。
(╳)8、在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。
(√)9、线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
(√)10、在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
(╳)11、线性表的特点是每个元素都有一个前驱和一个后继。
(╳)三、单项选择题1、顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(B)。
A.110 B.108 C.100 D.120解释:顺序表中的数据连续存储,所以第5个元素的地址为:100+2*4=108。
2、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是(A)。
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B.在第i个结点后插入一个新结点(1≤i≤n)C.删除第i个结点(1≤i≤n)D.将n个结点从小到大排序解释:在顺序表中插入一个结点的时间复杂度都是O(n2),排序的时间复杂度为O(n2)或O(nlog2n)。
大数据结构期末考试(题集)
数据结构的基本概念选择题(1)顺序存储结构中数据元素之间的逻辑关系是由()表示的,存储结构中的数据元素之间的逻辑关系是由()表示的。
A.线性结构B.非线性结构C.存储位置D.指针(2)假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产,子女可以继承父亲或母亲的遗产;子女间不能相互继承,则表示该遗产继承关系的最合适的数据结构应该是()。
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.可以通过计算得到第i个结点的存储地址D.插入和删除操作方便,不必移动结点(13)可以用()、数据关系和基本操作定义一个完整的抽象数据类型。
【数据结构】线性表顺序表详解和代码实例
【数据结构】线性表顺序表详解和代码实例线性表(List)是零个或者多个数据元素的有限序列.⾸先它是⼀个序列.⾥⾯的元素是有顺序的,如果有多个元素,除开头和结尾以外的元素都有⼀个前驱和⼀个后继.⽽开头元素只有后继,结尾元素只有前驱.其次线性表是有限的,也就是⾥⾯的元素个数是有限的。
1ADT 线性表(List)2Data3线性表的数据对象集合为{a1, a2, a3, ......, an},每个元素类型为DataType。
4Operation5InitList(L); //初始化线性表6 IsEmptyList(L); //判断线性表是否为空7 ClearList(L); //清空线性表8 GetElemList(L, i, *e); //获取第i个位置的数据9 SearchList(L, e); //查找与数据e相等的元素10 InsertNodeList(L, i, e);//在第i个位置插⼊元素11 DeleteNodeList(L, i, *e);//删除第i个位置的元素,e获取删除元素12 GetLengthList(L); //获取线性表的长度13endADT关于线性表的基本操作就上⾯⼏种,还有⼏个例如线性表的排序,合并,逆序等等操作。
为了⽂章篇幅,就下次再介绍了。
线性表的顺序存储结构,就是指 ⽤⼀段地址连续的存储单元⼀次存储线性表的数据元素。
学过⾼级语⾔的朋友,相信对数组这玩意⼉都不会陌⽣吧。
数组就是⼀种顺序存储结构。
链式存储结构就是可以⽤⼀组任意的内存单元存储线性表中的元素。
与顺序存储不同的是,这组内存单元可以是连续的,也可以是不连续的。
这就意味着,元素可以存储在内存的任意位置。
正因为如此,在链式结构中,每个元素不仅要存它的信息,还需要存储它后继元素的存储地址。
我们把存储元素信息的域称为数据域,⽽把存储后继元素地址的域称为指针域。
由这两部分共同组成的数据元素ai,则可以称之为节点(Node)。
智慧树知到《数据结构》章节测试答案
第1章单元测试1、算法的时间复杂度取决于___。
答案:A和B2、数据在计算机内存中的表示是指()答案:数据的存储结构3、算法指的是()答案:求解特定问题的指令有限序列4、在数据结构中,与所使用的计算机无关的数据结构是()答案:逻辑7、某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
答案:1448、算法能正确地实现预定功能的特性称为算法的()。
答案:正确性第2章单元测试1、链表不具备的特点是()。
答案:可随机访问任意一个结点3、线性表的顺序存储表示优于链式存储表示。
答案:错4、顺序存储结构的缺点是不便于修改,插入和删除需要移动很多结点。
答案:对5、在设头、尾指针的单链表中,与长度n有关的操作是( )。
答案:删除最后一个结点6、设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B间插入结点X的操作序列为( )。
答案:q->next=s; s->next=p;7、对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )。
答案:用尾指针表示的循环单链表8、在一个单链表中,若p所指节点不是最后节点,在p之后插入s所指节点,则执行( )。
答案:s->link=p->link;p->link=s;9、在双向链表存储结构中,删除p所指的结点时须修改指针____。
答案:p->next->prior=p->prior; p->prior->next=p->next;10、若事先不知道线性表的长度,则处理线性表时较好的存储结构是( )。
答案:单链表11、向一个有127个元素的顺序表中插入一个新元素并保存,原来顺序不变,平均要移动( )个元素。
答案:63.512、某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
数据结构期末考试题集
数据结构的基本概念选择题(1)顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A.线性结构B.非线性结构C.存储位置D.指针(2)假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产,子女可以继承父亲或母亲的遗产;子女间不能相互继承,则表示该遗产继承关系的最合适的数据结构应该是()。
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)以下关于链接存储结构的叙述中,()是不正确的。
专科《数据结构》_试卷_答案
专科《数据结构》一、 (共75题,共150分)1。
数据的逻辑结构在计算机内部存储表示称为为数据的()。
(2分)A.数据结构 B。
逻辑关系C。
物理结构 D.数据元素的内部结构.标准答案:C2。
()是数据的不可分割的最小单位。
(2分)A.数据对象 B。
数据元素 C。
数据类型 D。
数据项。
标准答案:D3。
算法的时间复杂度是对算法()的度量。
(2分)A。
时间效率 B。
空间效率 C。
可读性 D.健壮性.标准答案:A4。
()是限制了插入和删除操作在一端进行的线性表。
(2分)A.栈 B。
队列 C。
串 D.数组。
标准答案:A5. 数组通常采用顺序存储的优点是()。
(2分)A.便于增加存储空间 B。
便于依据下标进行随机存取C。
避免数据元素的移动 D.防止下标溢出。
标准答案:B6. 采用带头结点双向链表存储的线性表,在插入一个元素时,需要修改指针()次。
(2分)A.1B.2 C。
3 D。
4.标准答案:D7。
线性表的顺序存储结构是一种()的存储结构. (2分)A。
顺序存取 B.随机存取 C.索引存取 D。
Hash存取。
标准答案:B8. 数组a[1。
256]采用顺序存储,a的首地址为10,每个元素占2字节,则a [21]的地址是()。
(2分)A。
10 B。
30 C。
50 D。
70.标准答案:C9。
深度为4的二叉树,第4层至少有()个结点。
(2分)A。
0 B。
1 C。
8 D。
15。
标准答案:B10. 若二叉树对应的二叉链表共有11个非空链域,则该二叉树有()个结点的二叉树. (2分)A。
10 B。
11 C。
20 D。
21.标准答案:A11。
下面叙述错误的是(). (2分)A.借助于队列可以实现对二叉树的层遍历B.栈的特点是先进后出C。
对于单链表进行插入操作过程中不会发生上溢现象D.在无向图的邻接矩阵中每行1的个数等于对应的顶点度。
标准答案:C12. 以下与数据的存储结构无关的术语是(). (2分)A.循环队列B.双向链表 C。
20226月数据结构习题
20226月数据结构习题1、一棵二叉树没有单分支结点,有6个叶结点,则该树总共有____11____个结点。
2、数据结构的实质就是研究数据的、以及定义在逻辑结构上所进行的一组5、一个图的_________表示法是唯一的,而___________表示法是不唯一的。
6、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有个叶子结点。
7、G为无向图,如果从G的某个顶点出发,进行一次广度优先搜索,即可访问图的每个顶点,则该图一定是。
8、结构中的数据元素存在多对多的关系称为_____图状(网状)___结构。
9、按照二叉树的递归定义,对二叉树遍历的常用算法有先序;中序;后序三种。
10、在具有n个单元的循环队列中,队满时共有__________个元素。
11、3个结点可构成棵不同形态的树。
12、一棵深度为h的满二叉树上的结点总数为,一棵深度为h的完全二叉树上的结点总数的最小值为,最大值为14、根据数据元素间关系的不同特性,通常可分为集合、线性、树形、图状四类基本结构。
15、数据结构中的数据元素存在一对多的关系称为__树形_____结构。
16、要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。
则比较的次数和算法的时间复杂度分别为__n-1和O(n)__17、顺序存储的栈中,在作进栈运算时,应先判别栈是否,在进行出栈运算时应先判别栈是否。
当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为。
18、在带头结点的循环链表h中,判断表空的条件是19、具有n个顶点的有向完全图的弧数为_________。
20、数据的存储结构被分为_________和_________。
21、设有一顺序栈S,元素1,2,3,4,5,6依次进栈,如果6个元素出栈的顺序是2,3,4,6,5,1,则栈的容量至少应该是________。
22、在线性表的顺序存储中,元素之间的逻辑关系是通过决定的;在线性表的链式存储中,元素之间的逻辑关系是通过_________决定的。
算法与数据结构判断题
一、判断题:二、1、线性表的逻辑顺序与物理顺序总是一致的。
(F)不是。
只有顺序存储情况下才一致,链式存储因为是随机选择物理存储单元,所以不一致。
2、线性表的顺序存储表示优于链式存储表示。
( F )3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
( T )4、二维数组是其数组元素为线性表的线性表。
( T )5、每种数据结构都应具备三种基本运算:插入、删除和搜索。
( F )6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。
( T )7、线性表中的每个结点最多只有一个前驱和一个后继。
( F )8、线性的数据结构可以顺序存储,也可以链接存储。
非线性的数据结构只能链接存储。
( F )9、栈和队列逻辑上都是线性表。
(T )10、单链表从任何一个结点出发,都能访问到所有结点(T )11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。
(F)12、快速排序是排序算法中最快的一种。
(F )13、多维数组是向量的推广。
( F )14、一般树和二叉树的结点数目都可以为0。
(T )15、直接选择排序是一种不稳定的排序方法。
(F )16、98、对一个堆按层次遍历,不一定能得到一个有序序列。
(T )17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
(F )18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。
( F )19、堆栈在数据中的存储原则是先进先出。
( F )20、队列在数据中的存储原则是后进先出。
( F )21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。
( F )22、哈夫曼树一定是满二叉树。
( F )23、程序是用计算机语言表述的算法。
(F )24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。
(T )25、用一组地址连续的存储单元存放的元素一定构成线性表。
数据结构(第二章 线性表)
2.2 线性表的顺序存储和实现
顺序表-顺序表定义
由上可知,数据的存储逻辑位置由数组的下标决定。 所以相邻的元素之间地址的计算公式为(假设每个数 据元素占有d个存储单元): LOC(ai)=LOC(ai-1)+d 对线性表的所有数据元素,假设已知第一个数据元 素a0的地址为LOC(a0) ,每个结点占有d个存储 单元, 则第i个数据元素ai的地址为: LOC(ai)=LOC(a0)+i*d 线性表的第一个数据元素的位置通常称做起始位置 或基地址。 在使用一维数组时,数组的下标起始位置根据给定 的问题确定,或者根据实际的高级语言的规定确定。
2.1 线性表抽象数据类型
线性表的分类
顺序存储结构 (元素连续存储、 随机存取结构) 线性表 ADT 链式存储结构 (元素分散存储) 继承 顺序表类 排序顺序表类 继承 单链表类 循环单链表 双链表 继承 排序循环双链表类 排序单链表类
单链表
双链表
循环双链表类
线性表的存储结构
2.2 线性表的顺序存储和实现
线性表的基本操作 求长度:求线性表的数据元素个数。 访问:对线性表中指定位置的数据元素进行存取、替 换等操作。 插入:在线性表指定位置上,插入一个新的数据元素, 插入后仍为一个线性表。 删除:删除线性表指定位置的数据元素,同时保证更 改后的线性表仍然具有线性表的连续性。 复制:重新复制一个线性表。 合并:将两个或两个以上的线性表合并起来,形成一 个新的线性表。 查找:在线性表中查找满足某种条件的数据元素。 排序:对线性表中的数据元素按关键字值,以递增或 递减的次序进行排列。 遍历:按次序访问线性表中的所有数据元素,并且每 个数据元素恰好访问一次。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 按顺序存储方式存储的线性表具有顺序存储结构, 一般称之为顺序表。换言之,在程序中采用定长的 一维数组,按顺序存储方式存储的线性表,被称为 顺序表.
线性表顺序存储结构的缺点 线性表容量不易改变,插入和删除结点较繁琐, 需移动元素调整一批结点的地址。
问题:由于线性表中元素的数目可能改变,因此 定义数组时要做如何的考虑呢? 定义大小合适的数组。
15
A的当前长度为 n, n m; 删除下标为 k 的结点 */
D1.[k合法?] IF (k 0 OR k n1 OR n0) THEN (PRINT“k不合法”. 终止本算法.).
D2.[删除] FOR ik1 TO n1 DO A[i1]A[i]. n n1. ▌
13
时间复杂性分析:
删除操作中与时间关系紧密的基本运算是什么? 元素移动
7
序号 元素
序号 元素
0 12
0 12
1 13
1 13
2 21
2 21
插入25 3 24
3 24
4 28
4 25
5 30
5 28
6 42 7 77
6 30 7 42
8 77
8
//采用ADL算法描述语言描述算法
算法 Insert(A , k , X) /* 设顺序表 A 的最大长度为 m,A
当前长度为 n(A[0], A[1], , A[n1]),且始终有 n m; 在下标为 k 的结点后插入值为 X 的结点 */
I1.[ 插入合法?] IF ( k 0 OR k m2 OR n m) THEN (PRINT“插入不合法”. 终止本算法.).
I2.[插入] FOR in1 TO k1 STEP 1 DO A[i1]A[i]. A[k1] X. n n1. ▌
9
时间复杂性分析:
插入操作中与时间紧密相关的基本运算是什么? 元素移动
按顺序存储方式存储的线性表具有顺序存储结构。
特点:其逻辑顺序与物理顺序相同。
线性表 存储结构
顺序存储 链接存储
2
2.2.1 顺序存储结构
1. 实现顺序存储的方法
一维数组是实现线性表顺序存储的有效方法. 如 线性表(a0, a1, …, an1),可用一维数组a[n]来存放。
2. 顺序存储结构的优缺点:
若顺序表中元素按其值整序,则称其为有序顺序表.
6
顺序存储的线性表的基本运算
1. 插入 [例] 在有序顺序表(12, 13, 21, 24, 28, 30, 42, 77) 中,插入元素 25 .
要求: 插入完成后,仍然是一个有序顺序表
问题: 此时, 线性表的逻辑结构发生什么变化? 位置关系发生变化 长度增加 1
Dn中有多少种可能的输入呢? n 种(n 个位置可以发生删除)
假定每种删除发生的概率相等(即1/n),则期望复 杂性是多少? E(n)((n1) (n1) … 1 0)/n(n1)/2
14
小结
线性表顺序存储结构的优点 空间利用率高,简单、易于实现,可随机访问表 中任一元素,存取速度快。
中,删除元素 24 . 问题:线性表的逻辑结构发生什么变化? 位置关系发生变化,线性表长度减少1
11
序号 元素
0 12 1 13 删除24 2 21 3 24 4 28 5 30 6 42 7 77
序号 元素
0 12 1 13 2 21 3 28 A, k) /* 设顺序表 A 的最大长度为m,
308
A[2]
A[3]
图2.1 线性表的顺序存储
4
b bc
bkc
b(n1)c
空闲区
a0 0 a1 1
…
[例]:数组a[n]存放线 性表(a0, a1, … , an1). 每个结点占用 c 个地 址连续的字节.
ak k
…
an1 n1
Loc (a[k]) Loc (a[0]) kc
5
4. 顺序表之定义
第二章 线性表、堆栈和队列
2.2 线性表的存储结构 2.2.1 顺序存储结构 2.2.2 链接存储结构--单链表 2.2.3 循环链表 2.2.4 双向循环链表
1
2.2 线性表的存储结构
顺序存储方式
按照线性表结点间的逻辑顺序依次将它们存储于 一组地址连续的存储单元中的这样一种存储方式 被称为线性表的顺序存储方式。
假定线性表的当前长度为 n,则Dn(输入数据集) 中有多少种可能的输入呢? n 种(n个位置可以发生插入)
设每种输入发生的概率相等(即1/n),则期望复 杂性? E(n)((n1)(n2) …10)(1/n)(n1)/2
10
2、删除 [例] 在有序顺序表(12, 13, 21, 24, 28, 30, 42, 77)
优点: 其逻辑顺序与物理顺序相同; 存储空间的利用率高,存取速度快 ; 缺点: 不利于插入和删除
3
3. 线性表顺序存储的例子
图2.1给出了包含4个结点的线性表A[4]在内存储 器中的存储表示,其中每个结点占用2个地址连 续的字节,第一个结点A[0]的首地址为302 .
302
304
A[0]
306
A[1] 线性表