广州大学松田学院2数据结构复习题-线性表-参考答案
数据结构线性表2答案
习题二一、选择题1.在一个长度为n的顺序表中删除第i个元素(0<i<n)时,需要向前移动( A)个元素。
A.n-i B.n-i+1 C.n-i+1 D.i+12.从一个具有n个元素的线性表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(C )个元素结点。
A.n/2 B.n C.(n-1)/2 D.(n +1)/2 3.对一个具有n个元素的线性表,建立其单链表的时间复杂度为( A)。
A.O(n) B.O(1) C.O(n2)D.O(long2n)4.线性表采用链式存储时,其地址( D )。
A.必须是连续的B.一定是不连续的C.部分地址必须连续D.连续与否均可以5.在一个具有n个结点的有序单链表中插人一个新的结点,使得链表仍然有序,该算法的时间复杂度是(D )。
A.O(long2n)B.O(l)C.O(n2)D.O(n)6.线性表是(A )。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空7.在一个长度为n的顺序表中,向第i个元素(0一1<n+1)之前捕人一个新元素时,需要向后移动( B )个元素。
A.n-i B.n-i+1 C.n-i-1 D.i+18.如果某链表中最常用的操作是取第i个结点及其前驱,则采用( D)存储方式最节省时间。
A.单链表B.双向链表C.单循环链表D.顺序表9.一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是(B)。
A.98 B.100 C.102 D.10610.下列排序方法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( C)。
A.堆排序B.冒泡排序C.直接插人排序D.快速排序11.对线性表进行二分查找时,要求线性表必须(C)。
A.以顺序方法存储B.以链接方法存储C.以顺序方法存储,且结点接关键字有序排列D.以链接方法存储,且结点接关键字有序排列12.在顺序存储的线性表(a1……a n)中,删除任意一个结点所需移动结点的平均移动次数为( C )A.n B.n/2 C.(n-1)/2 D.(n+l)/2 13.在线性表的下列存储结构中,读取元素花费的时间最少的是(D)。
线性表复习题答案
线性表复习题答案线性表复习题答案线性表是数据结构中最基本的一种,它是由一组具有相同数据类型的元素组成的数据结构。
线性表的常见实现方式有顺序表和链表。
在学习线性表的过程中,掌握相关的复习题答案是非常重要的。
本文将针对线性表的复习题进行解答,帮助读者巩固对线性表的理解和掌握。
一、顺序表1. 什么是顺序表?顺序表的特点是什么?答:顺序表是用一段连续的存储单元依次存储数据元素的线性结构。
顺序表的特点是元素在物理位置上相邻,逻辑上也相邻。
2. 顺序表的存储结构是怎样的?答:顺序表的存储结构是一段连续的存储空间,可以使用数组来实现。
3. 如何实现顺序表的插入操作?答:顺序表的插入操作需要将插入位置后的元素依次后移,然后将待插入元素放入指定位置。
4. 如何实现顺序表的删除操作?答:顺序表的删除操作需要将删除位置后的元素依次前移,然后将最后一个元素删除。
5. 顺序表的查找操作有哪些?答:顺序表的查找操作包括按值查找和按位置查找。
按值查找是指根据给定的值在顺序表中查找对应的位置,按位置查找是指根据给定的位置获取对应的值。
二、链表1. 什么是链表?链表的特点是什么?答:链表是一种使用指针来实现的动态数据结构,它由一系列的节点组成。
链表的特点是元素在物理位置上不一定相邻,但逻辑上相邻。
2. 链表的存储结构是怎样的?答:链表的存储结构由节点组成,每个节点包含数据域和指针域。
数据域用于存储数据元素,指针域用于指向下一个节点。
3. 如何实现链表的插入操作?答:链表的插入操作需要创建新节点,并将新节点的指针域指向插入位置的后继节点,然后将插入位置的前驱节点的指针域指向新节点。
4. 如何实现链表的删除操作?答:链表的删除操作需要找到待删除节点的前驱节点,将前驱节点的指针域指向待删除节点的后继节点,然后释放待删除节点的内存空间。
5. 链表的查找操作有哪些?答:链表的查找操作包括按值查找和按位置查找。
按值查找是指根据给定的值在链表中查找对应的节点,按位置查找是指根据给定的位置获取对应的节点。
数据结构课后习题答案第二章 线性表
第二章线性表2.1描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。
并说明头指针和头结点的作用。
答:头指针是一个指针变量,里面存放的是链表中首结点的地址,并以此来标识一个链表。
如链表H,链表L等,表示链表中第一个结点的地址存放在H、L中。
头结点是附加在第一个元素结点之前的一个结点,头指针指向头结点。
当该链表表示一个非空的线性表时,头结点的指针域指向第一个元素结点,为空表时,该指针域为空。
开始结点指第一个元素结点。
头指针的作用是用来惟一标识一个单链表。
头结点的作用有两个:一是使得对空表和非空表的处理得以统一。
二是使得在链表的第一个位置上的操作和在其他位置上的操作一致,无需特殊处理。
2.2填空题1、在顺序表中插入或删除一个元素,需要平均移动(表中一半)元素,具体移动的元素个数与(表长和该元素在表中的位置)有关。
2、顺序表中逻辑上相邻的元素的物理位置(必定)相邻。
单链表中逻辑上相邻的元素的物理位置(不一定)相邻。
3、在单链表中,除了首元结点外,任一结点的存储位置由(其直接前驱结点的链域的值)指示。
4、在单链表中设置头结点的作用是(插入和删除元素不必进行特殊处理)。
2.3何时选用顺序表、何时选用链表作为线性表的存储结构为宜?答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑:1.基于空间的考虑。
当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。
2.基于时间的考虑。
若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。
并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。
2.10 Status DeleteK(SqList &a,int i,int k)//删除线性表a中第i个元素起的k个元素{if(i<1||k<0||i+k-1>a.length) return INFEASIBLE;for(count=1;i+count-1<=a.length-k;count++) //注意循环结束的条件a.elem[i+count-1]=a.elem[i+count+k-1];a.length-=k;return OK;}//DeleteK2.11设顺序表中的数据元素递增有序,试写一算法,将X插入到顺序表的适当位置上,以保持该表的有序性。
数据结构练习题线性表习题及答案
精品文档第二章线性表一.名词解释1.线性结构2.数据结构的顺序实现3.顺序表4.链表5.数据结构的链接实现6. 建表7.字符串8.串9.顺序串 10.链串二、填空题1.为了便于讨论,有时将含n(n>=0)个结点的线性结构表示成(a,a,……a),其中每n12个a代表一个______。
a称为______结点,a称为______结点,i称为a在线性表中的________ii1n或______。
对任意一对相邻结点a、a(1<=i<n),a称为a的直接______a称为a的直iii┼1i┼1┼i1i接______。
2.为了满足运算的封闭性,通常允许一种逻辑结构出现不含任何结点的情况。
不含任何结点的线性结构记为______或______。
3.线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接______外,其他结点有且仅有一个直接______;除终端结点没有直接______外,其它结点有且仅有一个直接______.4.所有结点按1对1的邻接关系构成的整体就是______结构。
5.线性表的逻辑结构是______结构。
其所含结点的个数称为线性表的______,简称______.6.表长为O的线性表称为______7.线性表典型的基本运算包括:______、______、______、______、______、______等六种。
8.顺序表的特点是______。
9.顺序表的类型定义可经编译转换为机器级。
假定每个datatype类型的变量占用k(k>=1)个内存单元,其中,b是顺序表的第一个存储结点的第一个单元的内存地址,那么,第i个结点a的存储地址为______。
i10.以下为顺序表的插入运算,分析算法,请在______处填上正确的语句。
Void insert_sqlist(sqlist L,datatype x,int i)/*将X插入到顺序表L的第i-1个位置*/{ if( st == maxsize) error(“表满”);if((i<1)||(i>st+1))error(“非法位置”);for(j=st;j>=i;j--)______;L.data[i-1]=x;st=st+1;}11.对于顺序表的插入算法insert_sqlist来说,若以结点移动为标准操作,则插入算法的最坏时间复杂性为________,量级是________。
数据结构(线性表)习题与答案
数据结构(线性表)习题与答案数据结构(线性表)习题与答案1. 线性表的定义线性表是一种常用的数据结构,它由一系列元素组成,并且每个元素具有前驱和后继关系。
线性表可以通过顺序存储或链式存储来实现。
2. 线性表的实现方式2.1 顺序存储顺序存储是利用数组来实现线性表的一种方式。
数组的每个元素可以存储一个数据项,通过下标可以快速访问和操作其中的元素。
2.2 链式存储链式存储是通过节点之间的指针关联来实现线性表的一种方式。
每个节点包含数据域和指针域,指针域指向下一个节点。
3. 线性表的基本操作3.1 初始化线性表初始化线性表需要给表头节点分配内存空间,并将头节点的指针域置为空。
3.2 插入元素在线性表的某个位置插入元素,需要先找到插入位置的前一个节点,然后将新节点插入到该位置。
调整节点之间的指针关联即可完成插入操作。
3.3 删除元素删除线性表中的某个元素,需要找到待删除元素的前一个节点,然后将该节点的指针指向待删除节点的下一个节点,释放待删除节点的内存空间即可。
3.4 查找元素查找线性表中某个元素的位置,可以从表头节点开始逐个比较节点的数据域,直到找到目标元素或者遍历结束。
4. 线性表的习题与答案4.1 习题1已知线性表L中的元素按非递减顺序排列,设计一个算法,将元素x插入到L中,保持L的有序性。
解答:1) 从表头节点开始,顺序遍历节点的数据域,找到第一个大于等于x的节点的前一个节点,记为p。
2) 创建新的节点node,将x赋值给node的数据域。
3) 将node的指针域指向p的下一个节点。
4) 将p的指针域指向node。
5) 插入完成。
4.2 习题2已知线性表L中的元素按递减顺序排列,设计一个算法,删除L中所有大于x的元素。
解答:1) 从表头节点开始,顺序遍历节点的数据域,找到第一个小于等于x的节点的前一个节点,记为p。
2) 将p的指针域指向p的下一个节点,删除p的后继节点。
3) 重复执行步骤2,直到遍历结束。
数据结构第2章习题参考答案
数据结构第2章习题参考答案2.7习题2.7.1知识点:线性表的逻辑结构一、选择题1①线性表l=(a1,a2,…,an),下列说法正确的是(d)。
a.每个元素都有一个直接前驱和一个直接后继。
b.线性表中至少要有一个元素。
c.表诸元素的排序顺序必须就是由小到大或由小至大。
d.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
2①在线性表的下列运算中,不改变数据元素之间结构关系的运算是(d)。
a.插入b.删除c.排序d.定位3①线性表就是具备n个(c)的非常有限序列(n>0)。
【清华大学1998】a.表元素b.字符c.数据元素d.数据项e.信息项二、判断题(t)1①线性表中的每个结点最多只有一个前驱和一个后继。
(f)2①线性表中的每个结点都至少存有一个前驱结点和后继结点。
(f)3①线性表就是n个数的非常有限序列。
(f)4①同一线性表的数据元素可以具有不同的特性。
(t)5①线性表的长度n就是表数据元素的个数,当n=0时,称作空表。
(t)6①线性表就是一个相当有效率的数据结构,它的长度可以根据须要快速增长或延长。
(f)7①对线性表中的数据元素就可以展开出访,无法展开填入和删掉操作方式。
2.7.2知识点:线性表的顺序存储结构一、选择题1①在一个长度为n的顺序表中,在第i个元素(1<=i<=n+1)之前插入一个新元素时需向后移动(b)个元素.a.n-1b.n-i+1c.n-i-1d.i2①若某线性表中最常用的操作方式就是挑第i个元素和打听第i个元素的前趋元素,则使用(d)存储方式最节省时间。
a.单链表b.双链表c.单向循环d.顺序表3②一个数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(b)a.110b.108c.100d.1204①下列哪一条就是顺序存储结构的优点(a)。
【北方交通大学2001】a.存储密度小b.填入运算便利c.删除运算方便d.可方便地用于各种逻辑结构的存储表示5③若长度为n的线性表使用顺序存储结构,在其第i个边线填入一个新元素的算法的时间复杂度为(c)(1<=i<=n+1)。
数据结构线性表练习题试卷及答案
第2章线性表后面红色的答案一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学2001 一、4(2分)】A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个()的有限序列(n>0)。
【清华大学1998 一、4(2分)】A.表元素B.字符C.数据元素D.数据项E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
【哈尔滨工业大学2001 二、1(2分)】A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
【南开大学2000 一、3】A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。
则采用()存储方式最节省运算时间。
【北京理工大学2000 一、1(2分)】A.单链表B.双链表C.单循环链表D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学2001 六、2(2分)】A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址9. 链表不具有的特点是()【福州大学1998 一、8 (2分)】A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。
《数据结构》关于线性表的练习题(PPT内含答案)
C.插入删除时不需移动元素
D.所需空间与线性表成正比
7.在( B )的运算中,使用顺序表比链表好。
A.插入
B.根据序号查找
C.删除
D.根据元素查找
8.在单链表指针为p的结点之后插入指针为s的结点,正确 的操作是( B )。
A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
9.若对一个线性表经常进行查找操作,而很少进行插入和 删除操作时,则采用 顺序 存储结构为宜,相反,若经 常进行的是插入和删除操作时,则采用 链式 存储结构 为宜。
习题2
三、判断题 1.线性表的链式存储结构优于顺序存储结构。( F ) 2.链表的每个结点都恰好包含一个指针域。 ( F ) 3.在线性表的链式存储结构中,逻辑上相邻的两个元素在
B.循环链表和单向链表
C.循环链表
15.对具有n个结点的线性表进行插入或删除操作, 所需的算法时间复杂度为( D )。
A.O(n2) C.O(log2n)
B.O(nlog2n) D.O(n)
习题2
二、填空题
1.线性表L=(a1,a2,…,an)采用顺序存储,假定删除 表中任意元素的概率相同,则删除一个元素平均 需要移动元素的个数是 (n-1)/2 。
习题2
5.链表相对于顺序表的优点是插入、删除方便;缺点是存 储密度 小 。
6.链式存储的特点是利用 指针 来表示数据元素之间的 逻辑关系。
7.在双向链表中,每个结点有两个指针域,一个指向其 前驱结点,另一个指向其 后继 结点。
8.在一个双链表中,设指针p是指向该表中待删除的结点, 则需要执行的操作为: p->pre->next=p->next 。
《数据结构》复习题及参考答案
《数据结构》复习题及参考答案数据结构复习题及参考答案1. 什么是数据结构?数据结构是一种组织和存储数据的方式,它涉及到数据的组织方式、存储方式、访问方式以及对数据进行操作的算法等。
数据结构的选择对于解决不同类型的问题非常重要。
2. 数据结构有哪些常见的分类?数据结构可以分为以下几类:(1) 线性结构:线性结构是一种有序排列的数据结构,其中数据元素之间存在着一对一的关系。
常见的线性结构有数组、链表、栈和队列等。
(2) 非线性结构:非线性结构是一种数据元素之间存在多对多关系的结构,常见的非线性结构有树和图等。
(3) 逻辑结构:逻辑结构是指数据元素之间的逻辑关系,主要包括集合结构、线性结构、树形结构和图形结构等。
(4) 物理结构:物理结构是指数据的逻辑结构在计算机存储中的表示方式,主要包括顺序存储结构和链式存储结构等。
3. 什么是算法?算法是解决特定问题的一系列步骤或操作的有限序列。
一个算法通常包括输入、输出、基本操作、控制结构和定义算法执行的约定等。
4. 数据结构和算法之间的关系是什么?数据结构是算法的基础,而算法又依赖于数据结构。
只有选择合适的数据结构,才能实现高效的算法。
同时,算法的设计也会对数据结构的选择产生影响。
5. 请解释什么是时间复杂度和空间复杂度?时间复杂度是衡量算法执行时间消耗的度量,表示算法的运行时间与问题规模之间的关系。
通常用大O符号来表示时间复杂度,如O(n)、O(nlogn)等。
空间复杂度是衡量算法执行所需存储空间的度量,表示算法所需的额外空间与问题规模之间的关系。
同样也使用大O符号来表示,如O(1)、O(n)等。
6. 请简要描述以下数据结构的特点及应用场景:(1) 数组:数组是一种连续存储数据元素的线性结构,具有随机访问性能。
适用于知道元素位置的查找和修改操作。
(2) 链表:链表是一种通过指针连接的数据结构,具有插入、删除元素方便的特点。
适用于频繁插入、删除操作以及不知道具体位置的查找操作。
数据结构 线性表试题
数据结构线性表试题.txt我自横刀向天笑,笑完我就去睡觉。
你的手机比话费还便宜。
路漫漫其修远兮,不如我们打的吧。
第2章线性表2.1选择题1.对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择()最节省时间A)顺序表 B)带头结点的双循环链表C)单链表 D)带尾结点的单循环链表【答案】A2.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法时间复杂度为()(1≤i≤n+1)。
A) O(0) B) O(1) C) O(n) D) O(n2)【答案】C3.双向链表中有两个指针域,prior和next,分别指向前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为()A) p->prior=q; q->next=p; p->prior->next=q; q->prior=p->prior;B) q->prior=p->prior; p->prior->next=q; q->next=p; p->prior=q->next;C) q->next=p; p->next=q; p->prior->next=q; q->next=p;D) p->prior->next=q; q->next=p; q->prior=p->prior; p->prior=q;【答案】D4.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()A)O(nlog2n) B) O(1) C) O(n) D) O(n2)【答案】C5.在一个以 h 为头指针的单循环链中,p 指针指向链尾结点的条件是()A)p->next==NULL B) p->next==hC)p->next->next==h D) p->data==-1【答案】B6.对于一个具有n个结点的线性表,建立其单链表的时间复杂度是()A)O(n) B) O(1) C)O(nlog2n) D) O(n2)【答案】A8.在双向链表存储结构中,删除p所指的结点时须修改指针()A)p->prior->next=p->next p->next->prior=p->prior;B)p->prior=p->prior->prior p->prior->next=p;C)p->next->prior=p p->next=p->next->nextD)p->next=p->prior->prior p->prior=p->next->next;【答案】A9.线性表采用链式存储时,其元素地址()A)必须是连续的 B)一定是不连续的C)部分地址是连续的 D)连续与否均可【答案】D2.2 填空题1.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_____________。
广州大学松田学院计算机组成原理复习题(仅供参考)
一、单项选择题1.存储器的基本单位是字节,其长度是()A.1bit B.8bit C.16bit D.32bit2.二进制数01101011对应的十进制数为()A.100 B.107 C.117 D.1273.若十进制数为101,则其对应的二进制数为()A.01100101B.01010011C.01110001D.010100104.若十进制数为-49,则其对应的补码[X]补为()A.11100011B.11111001C.11001111D.110011105.若地址总线为A15(高位)~A0(低位),若用4KB的存储芯片组成8KB存储器,则加在各存储芯片上的地址线是()A.A11~A0B.A10~A0C.A9~A0D.A8~A06.CPU可直接访问的存储器是()A.硬盘B.软盘C.光盘D.高速缓存7.在CPU中,指令寄存器IR用来存放()A.正在执行的指令B.即将执行的指令C.已执行的指令D.指令地址8.下列存储器中不是..半导体存储器的是()A.静态存储器B.动态存储器C.U盘D.光盘9.容量为4KB的存储器的最少地址位数为()A.11 B.12 C.13 D.1410.下列寻址方式中出现在指令“ADD R2,(R1)”中的是()A.隐含寻址B.存储器间接寻址C.寄存器间接寻址D.直接寻址11.下列寄存器中用于与存储器之间传送数据的是()A.MDR B.MAR C.PC D.SP12.下列说法不正确...的是()A.硬连线控制器比微程序控制器设计复杂B.硬连线控制器不便于实现复杂指令的控制C.微程序控制器比硬连线控制器速度要快D.微程序控制器将指令执行所需要的控制信号存放在存储器中13.补码加法运算是指( )A.操作数用补码表示,符号位单独处理B.操作数用补码表示,连同符号位一起相加C.操作数用补码表示,将加数变补,然后相加D.操作数用补码表示,将被加数变补,然后相加14.动态RAM存储信息依靠的是( )A.电容B.双稳态触发器C.晶体管D.磁场15.下列存储器中,属于半导体存储器的是( )A.硬盘B.动态存储器C.软盘D.光盘16.对于容量为8KB的存储器,寻址所需最小地址位数为( )A.2B.3C.12D.1317.采用微程序控制的主要目的是()A.提高速度B.简化控制器设计与结构C.使功能很简单的控制器能降低成本D.不再需要机器语言18.一条机器指令中通常包含的信息有( )A.操作码、控制码B.操作码、立即数C.地址码、寄存器号D.操作码、地址码19.从主存中取回到CPU中的指令存放位置是( )A.指令寄存器B.状态寄存器C.程序计数器D.数据寄存器20.中断屏蔽字的作用是()A.暂停外设对主存的访问B.暂停对某些中断的响应C.暂停对一切中断的响应D.暂停CPU对主存的访问21.指令执行所需的操作数不会..来自( )A.指令本身B.主存C.寄存器D.控制器22.并行接口是指( )A.仅接口与外围设备之间采取并行传送B.仅接口与系统总线之间采取并行传送C.接口的两侧均采取并行传送D.接口内部只能并行传送23.在计算机中磁盘存储器一般用作( )A.主存B.高速缓存C.辅存D.只读存储器24.为了减少指令中的地址个数,采用的有效办法是( )A.寄存器寻址B.立即寻址C.变址寻址D.隐地址25.组合逻辑控制器与微程序控制器相比( )A.组合逻辑控制器的时序系统比较简单B.微程序控制器的时序系统比较简单C.两者的时序系统复杂程度相同D.微程序控制器的硬件设计比较复杂26.用2K×4的存储芯片组成4KB存储器,需要几片这样的芯片?( )A.8片B.4片C.2片D.1片27.微程序存放在( )A.堆栈存储器中B.主存储器中C.控制存储器中D.辅助存储器中28.CPU响应中断请求( )A.可在任一时钟周期结束时B.可在任一总线周期结束时C.可在一条指令结束时D.必须在一段程序结束时29.串行接口是指( )A.接口与系统总线之间为串行传送B.接口与外设之间为串行传送C.接口的两侧都为串行传送D.接口内部只能串行传送30.在下列存储器中,按随机存取方式工作的存储器是A.硬盘B.光盘C.磁带D.主存31.若地址总线为A15(高位)~A0(低位),若用2K×4位的存储芯片组成8KB存储器,则加在各存储芯片上的地址线是A.A15~A10B.A10~A0C.A9~A0D.A8~A O32.在多级中断方式下,CPU在处理中断时()A.可响应更低级别的中断请求B.可响应更高级别的中断请求C.禁止其它的中断请求D.可响应同级别的中断请求33.静态RAM存储信息依靠的是A.电容B.双稳态触发器C.单稳态触发器D.磁场34.寄存器间接寻址是指A.从指令获得操作数B.从存储器获得操作数地址C.从指令指定的寄存器获得操作数D.从指令指定的寄存器获得操作数地址35.在控制器中,程序计数器PC用来存放A.正在执行的指令B.正在执行的指令地址C.下一条指令D.下一条指令的地址36.下列存储器中存取速度最快的存储器是( )A.主存B.辅存C.磁盘D.磁带37.在下列浮点数的表示中,属于规格化编码的是( )A.1.101l×2-3B.1.001l×23 C.0.0101×2-3D.0.001l×2338.在一个计算机系统中,下列说法正确的是( )A.主存的容量远大于Cache的容量,主存的速度比Cache快B.主存的容量远小于Cache的容量,主存的速度比Cache快C.主存的容量远大于Cache的容量,主存的速度比Cache慢D.主存的容量远小于Cache的容量,主存的速度比Cache慢39.采用直接寻址方式的操作数存放在( )A.某个寄存器中B.某个存储器单元中C.指令中D.输入/输出端口中40.比较硬连线控制器和微程序控制器,下列说法正确的是( )A.硬连线控制器结构简单规整B.硬连线控制器执行速度慢C.微程序控制器执行速度快D.微程序控制器容易实现复杂指令控制41.没有外存储器的计算机中,监控程序可以放在()内。
线性表复习题答案
线性表复习题答案1. 线性表的基本概念是什么?线性表是由一组数据元素构成的集合,其中每个元素称为线性表的节点。
这些节点之间存在一种线性关系,即每个节点(除了第一个和最后一个)都有一个唯一的前驱和一个唯一的后继。
2. 线性表有哪些基本操作?线性表的基本操作包括:- 插入:在指定位置插入一个新元素。
- 删除:删除指定位置的元素。
- 查找:查找线性表中是否存在某个特定元素。
- 遍历:按顺序访问线性表中的每个元素。
3. 线性表的顺序存储结构有哪些特点?顺序存储结构是使用一组连续的存储单元依次存储线性表的数据元素。
其特点包括:- 物理存储上的连续性。
- 逻辑上的顺序性。
- 可以通过计算得到任意位置的元素的存储地址。
4. 线性表的链式存储结构有哪些特点?链式存储结构是使用一组不连续的存储单元存储线性表的数据元素,并通过指针将它们连接起来。
其特点包括:- 物理存储上的非连续性。
- 逻辑上的顺序性。
- 需要额外的空间来存储指针信息。
5. 线性表的顺序存储结构和链式存储结构各有什么优缺点?顺序存储结构的优点是访问速度快,缺点是插入和删除操作效率较低,且空间利用率不高。
链式存储结构的优点是插入和删除操作效率高,空间利用率高,缺点是访问速度较慢。
6. 线性表的动态分配存储方式有哪些?线性表的动态分配存储方式包括:- 顺序分配:预先分配一定数量的存储空间。
- 链式分配:每个元素单独分配存储空间,并通过指针连接。
7. 线性表的静态分配存储方式有哪些?线性表的静态分配存储方式包括:- 固定大小的数组:预先定义一个固定大小的数组来存储线性表的元素。
- 动态扩展的数组:在数组空间不足时,通过复制数组到更大的空间来扩展存储容量。
8. 如何判断线性表是否为空?线性表为空的条件是其长度为0,即没有任何元素。
9. 线性表的长度和容量有何区别?线性表的长度是指当前线性表中元素的数量,而容量是指线性表能够存储的最大元素数量。
对于顺序存储结构,长度不能超过容量;对于链式存储结构,长度可以动态变化,不受容量限制。
算法与数据结构线性表答案(精)
第2章 线性表一、判断题1 线性关系的逻辑结构与存储结构总是一致的。
解:错。
单链表的逻辑结构与存储结构有可能是不一致的,有可能两个相邻结点的存储地址并不是相邻的。
2 每种数据结构都包括插入、删除和查找这三种基本运算。
解:错。
散列结构无插入与删除运算;栈没有查找,查找须配有另一个栈。
3 线性表中的每个结点最多只有一个前驱和一个后继。
解:对。
线性表的定义为:表中任意一个元素至多有一个前驱,至多有一后继。
4 线性的数据结构既可以顺序存储,也可以链接存储;非线性的数据结构则只能链接存储。
解:错。
对于非线性的数据结构,若对它的数据规定某种次序之后,也可以顺序存储。
如,树的前、中、后序遍历之后的存储,一个前驱可能对应多个后继。
5 顺序存储方式只能用于存储线性结构。
解:错。
非线性结构也可采用顺序存储。
6 多维数组是向量的推广。
解:对。
多维向量的存储方式实际上与一维向量是一致的。
7 设串s 的长度为n ,则s 的子串个数最多为n (n+1)/2。
解:错。
s 的长度为n ,故它含有n 个字符,它的子串应包括:1个字符的子串,2个字符的子串,…,n 个字符的子串;这些子串的个数分别为121)11(321-=-+=++++n n n n n n n C C C C8 单链表从任何一个结点出发,都能访问到所有结点。
解:错。
单链表仅能从头结点出发去访问所有结点,不能访问前驱。
9 线性表的长度是线性表所占用的存储空间的大小。
解:错。
线性表所占用的存储空间大小为:每个结点所占用的存储字节数乘以线性表的长度。
10 双循环链表中,任意一结点的后继指针均指向其逻辑后继。
解:错。
任意结点的后继结点包含有两个指针llink 和rlink ,只有rlink 指向其逻辑后继,而llink 指向其逻辑前驱。
11 数据结构、数据元素、数据项在计算机中的映象(或表示)分别称为存储结构、结点、数据域。
解:对。
12 线性表的顺序存储结构优于链式存储结构。
数据结构习题及答案 (2)
第二章线性表一、选择题1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )(A)110 (B)108(C)100 (D)120参考答案:B2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。
(A)64(B)63 (C)63.5 (D)7参考答案:C3.线性表采用链式存储结构时,其地址()。
(A) 必须是连续的 (B) 部分地址必须是连续的(C) 一定是不连续的 (D) 连续与否均可以参考答案:D4. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()(A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s;(C)s->next=p->next;p=s; (D)p->next=s;s->next=p;参考答案:B5.在一个单链表中,若删除p所指结点的后续结点,则执行()(A)p->next=p->next->next; (B)p=p->next; p->next=p->next->next;(C)p->next=p->next; (D)p =p->next->next;参考答案:A6.下列有关线性表的叙述中,正确的是()(A)线性表中的元素之间隔是线性关系(B)线性表中至少有一个元素(C)线性表中任何一个元素有且仅有一个直接前趋(D)线性表中任何一个元素有且仅有一个直接后继参考答案:A7.线性表是具有n个()的有限序列(n≠0)(A)表元素(B)字符(C)数据元素(D)数据项参考答案:C二、判断题1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。
()2.如果没有提供指针类型的语言,就无法构造链式结构。
()3.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。
数据结构——线性表自测题答案
第2章答案一、填空1 .在挨次表中插入或删除一个元素,需要平均移动表中一半元素,详细移动的元素个数与表长和该元素在表中的位置有关。
2 .线性表中结点的集合是一有限的,结点间的关系是一一对一的。
3 .向一个长度为n的向量的第i个元素(IWi这n+l)之前插入一个元素时,需向后移动n-i+1个元素。
4 .向一个长度为n的向量中删除第i个元素(1这iWn)时,需向前移动」工个元素。
5 .在挨次表中访问任意一结点的时间简单度均为QD_,因此,挨次表也称为随机存取的数据结构。
6 .挨次表中规律上相邻的元素的物理位置泌定相邻。
单链表中规律上相邻的元素的物理位置一不肯定相邻。
7 .在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。
8 .在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间简单度为O (n).二、推断正误(在正确的说法后面打勾,反之打叉)(×)1.链表的每个结点中都恰好包含一个指针。
答:错误。
链表中的结点可含多个指针域,分别存放多个指针。
例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
(× )2.链表的物理存储结构具有同链表一样的挨次。
错,链表的存储结构特点是无序,而链表的示意图有序。
(×)3.链表的删除算法很简洁,由于当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
错,链表的结点不会移动,只是指针内容转变。
(×)4.线性表的每个结点只能是一个简洁类型,而链表的每个结点可以是一个简单类型。
错,混淆了规律结构与物理结构,链表也是线性表!且即使是挨次表,也能存放纪录型数据。
(×)5.挨次表结构相宜于进行挨次存取,而链表相宜于进行随机存取。
错,正好说反了。
挨次表才适合随机存取,链表恰恰适于“顺藤摸瓜”(×)6.挨次存储方式的优点是存储密度大,且插入、删除运算效率高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2数据结构复习题(线性表)一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(×)(1)线性表的链式存储结构优于顺序存储。
(×)(2)链表的每个结点都恰好包含一个指针域。
(√)(3)在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
(×)(4)顺序存储方式的优点是存储密度大,插入、删除效率高。
(×)(5)线性链表的删除算法简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
(×)(6)顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
(√)(7)线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。
(√)(8)线性表采用顺序存储,必须占用一片连续的存储单元。
(×)(9)顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
(ㄨ)(10)插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用。
二.填空题(1)顺序表中逻辑上相邻的元素在物理位置上必须相连。
(2)线性表中结点的集合是有限的,结点间的关系是一对一关系。
(3)顺序表相对于链表的优点是:节省存储和随机存取。
(4)链表相对于顺序表的优点是:插入、删除方便。
(5)采用顺序存储结构的线性表叫顺序表。
(6)(7)链表相对于顺序表的优点是插入、删除方便;缺点是存储密度(8)在双链表中要删除已知结点*P(9)在单链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前趋结点的地址,其查找的时间复杂度为 O(n) 。
(10)单链表中需知道头指针才能遍历整个链表。
(11)性表中第一个结点没有直接前趋,称为开始结点。
(12)在一个长度为n的顺序表中删除第i个元素,要移动n-i 个元素。
(13)在一个长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移n- i +1 个元素。
(14)在无头结点的单链表中,第一个结点的地址存放在头指针中,而其它结点的存储地址存放在前趋结点的指针域中。
(15)当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快速度存取线性表中的元素时,应采用顺序存储结构。
(16)在线性表的链式存储中,元素之间的逻辑关系是通过指针决定的。
(17)在双向链表中,每个结点都有两个指针域,它们一个指向其前趋结点,另一个指向其后继结点。
(18)对一个需要经常进行插入和删除操作的线性表,采用链式存储结构为宜。
(19)双链表中,设p是指向其中待删除的结点,则需要执行的操作为:p->prior->next=p->next 。
(20)在如图所示的链表中,若在指针P所在的结点之后插入数据域值为a和b的两个结点,则可用下列两个语句: S->next->next=P->next; 和P->next=S;来实现该操作。
三.选择题(1)在具有n个结点的单链表中,实现( A )的操作,其算法的时间复杂度都是O(n)。
A.遍历链表或求链表的第i个结点B.在地址为P的结点之后插入一个结点C.删除开始结点D.删除地址为P的结点的后继结点(2)设a、b、c为三个结点,p、10、20分别代表它们的地址,则如下的存储结构称为( B )。
A.循环链表 B.单链表C.双向循环链表 D.双向链表(3)单链表的存储密度( C )。
A.大于1 B.等于1 C.小于1 D.不能确定(4)已知一个顺序存储的线性表,设每个结点占m个存储单元,若第一个结点的地址为B,则第i个结点的地址为( A )。
A. B+(i-1)*m B.B+i*m C. B-i*m D. B+(i+1)*m(5)在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为( B )。
A.O(1) B.O(n)C.O(n2) D.O(log2n)(6)设Llink、Rlink分别为循环双链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的尾元素的条件是( D )。
A.P== L B.P->Llink== L C.P== NULL D.P->Rlink==L(7)两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素前驱的条件是( B )。
A.P->next==Q->next B.P->next== Q C.Q->next== P D.P== Q(8)用链表存储的线性表,其优点是( C )。
A.便于随机存取B.花费的存储空间比顺序表少C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同(9)在单链表中,增加头结点的目的是( C )。
A.使单链表至少有一个结点B.标志表中首结点的位置C.方便运算的实现D.说明该单链表是线性表的链式存储结构(10)下面关于线性表的叙述中,错误的是( D )关系。
A.顺序表必须占一片地址连续的存储单元B.顺序表可以随机存取任一元素C.链表不必占用一片地址连续的存储单元D.链表可以随机存取任一元素(11)L是线性表,已知LengthList(L)的值是5,经DelList(L,2)运算后,LengthList(L)的值是( C )。
A.2 B.3 C.4 D.5(12)单链表的示意图如下:L指向链表Q 结点的前趋的指针是( B )。
A .LB .PC .QD .R(13)设p 为指向单循环链表上某结点的指针,则*p 的直接前驱( C )。
A .找不到B .查找时间复杂度为O (1)C .查找时间复杂度为O (n )D .查找结点的次数约为n(14)等概率情况下,在有n 个结点的顺序表上做插入结点运算,需平均移动结点的数目为( C )。
A .nB .(n-1)/2C . n/2D .(n+1)/2 (15)在下列链表中不能从当前结点出发访问到其余各结点的是( C )。
A .双向链表B .单循环链表C .单链表D .双向循环链表(16)在顺序表中,只要知道( D ),就可以求出任一结点的存储地址。
A .基地址B .结点大小C . 向量大小D .基地址和结点大小(17)在双链表中做插入运算的时间复杂度为( A )。
A .O (1)B .O (n )C .O (n 2) D .O (log 2n ) (18)链表不具备的特点是( A )。
A .随机访问B .不必事先估计存储空间C .插入删除时不需移动元素D .所需空间与线性表成正比 (19)以下关于线性表的论述,不正确的为( C )。
A .线性表中的元素可以是数字、字符、记录等不同类型B .线性顺序表中包含的元素个数不是任意的C .线性表中的每个结点都有且仅有一个直接前趋和一个直接后继D .存在这样的线性表,即表中没有任何结点 (20)在( B )的运算中,使用顺序表比链表好。
A .插入B .根据序号查找C . 删除D .根据元素查找四.下述算法的功能是什么?(1) (2)解:(1)返回结点*p 的直接前趋结点地址。
(2)交换结点*p 和结点*q (p 和q 的值不变)。
五. 程序填空1.已知线性表中的元素是无序的,并以带表头结点的单链表作存储。
试写一算法,删除表中所有大于min ,小于max 的元素,试完成下列程序填空。
ListNode *Demo1(LinkList L,ListNode *p){ // L 是有头结点的单链表ListNode *q=L->next;While (q && q->next!=p)q=q->next;if (q)return q; elseError(“*p not in L”);} void Demo2(ListNode *p,ListNode *q) { // p,*q 是链表中的两个结点 DataType temp; temp=p->data; p->data=q->data; q->data=temp; }V oid delete (lklist head; datatype min, max){ q=head->next;while (p!=NULL){ if ((p->data<=min ) | | (p->data>=max ){q=p; p=p->next ; }else{ q->next=p->next ;delete (p) ;p=q->next ; }}}2.在带头结点head的单链表的结点a之后插入新元素x,试完成下列程序填空。
struct node{ elemtype data;node *next;};void lkinsert (node *head, elemtype x){ node *s, *p;s= new node ;s->data= x ;p=head->next;while (p!=NULL) && ( p->data!=a )____p=p->next ;if (p==NULL)cout<< " 不存在结点a! ";else {_____s->next=p->next______;___ p->next=s __________;}}六.程序设计题1.写一个对单循环链表进行遍历(打印每个结点的值)的算法,已知链表中任意结点的地址为P 。
2.对给定的带头结点的单链表L,编写一个删除L中值为x的结点的直接前趋结点的算法。
3.将一个顺序表中从第i个结点开始的k个结点删除。
4.已知一个单链表,编写一个函数从单链表中删除自第i个结点起的k个结点。
5.有—个单链表(不同结点的数据域值可能相同),其头指针为head,编写一个函数计算值域为x的结点个数。
6.有两个循环单链表,链头指针分别为head1和head2,编写一个函数将链表head1链接到链表head2,链接后的链表仍是循环链表。
1.解:void Show(ListNode *P){ ListNode *t=P;do{ printf ("%c",t->data);t=t->rear;}while (t!=P);}2.解:void delete(ListNode *L){ ListNode *p=L,*q;if (L->next->data==X){ printf (“值为x的结点是第一个结点,没有直接前趋结点可以删除”);return;}for (;p->next->data!=X; q=p; p=p->next); // 删除指针p所指向的结点q->next=p->next;delete p;}3.解(校对一下,或换一题)void Del(SeqList *L,int i,int k){ int j=i-1+k;for (j=0;j<k;j++){ L->data[i-1+j]=L->data[i+k-2+j];if (i+k-2+j>L->last)break;}}void Del(SeqList *L,int i,int k){ int j=i-1+k;if (j>L->last){ printf(“超出范围!”)return;}for (j=0;j<L->last-i;j++)L->data[i-1+j]=L->data[i+k-2+j];}4.解:void Del(node *head,int i,int k){node *p,*q;int j;if (i==1)for (j=1;j<=k;j++) // 删除前k个元素{p=head; // p指向要删除的结点head=head->next;delete p;}else{p=head;for (j=1;j<=i-2;j++)p=p->next; // p指向要删除的结点的前一个结点for (j=1;j<=k;j++){q=p->next; // q 指向要删除的结点p->next=q->next;delete q;}}} 佟1985.解:本题是遍历单链表的每个结点,每遇到一个结点,结点个数加1,结点个数存储在变量n中。