线性表填空试题 数据结构

合集下载

数据结构线性表习题1

数据结构线性表习题1

数据结构练习题1 指导老师:***姓名:***学校:滨州学院院系:信息工程学院软件技术填空题1.对于一个n个结点的单链表,在表头插入元素的时间复杂度为_____O(1)_____,在表尾插入元素的时间复杂度为_____O(n)_____。

2.删除非空线性链表中由q所指的链结点(其直接前驱结点由r指出)的动作时执行语句___r->link=q->link_______和______free(q)____。

结点结构为typedef struct Node{int value;node * link;}node;3.非空线性链表中,若要在由p所指的链结点后面插入新结点q,则应执行语句____ q->link=p->link;______和_____ p->link=q;_____。

结点结构为typedef struct Node{int value;node* link;}node;4.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_____(n-1)/2_____。

5.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动_____ n-i+1_____ 个元素。

6.在具有n个链结点的链表中查找一个链结点的时间复杂度为O(_______n___)。

7.线性表中的插入、删除操作,在顺序存储方式下平均移动近一半的元素,时间复杂度为_____O(n)_____;而在链式存储方式下,插入和删除操作的时间复杂度都是____O(1)______ 。

8.若某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第10个元素的存储地址为____136______。

选择题1.对于一个带头结点的单链表,头指针为head,判定该表为空的条件是________B__。

A. head==NULLB. head->next==NULLC. head->next==headD. head!=NULL2.将长度为m的线性链表链接在长度为n的线性链表之后的过程的时间复杂度若采用大O形式表示,则应该是______B____。

数据结构试题及答案

数据结构试题及答案
6.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为e=d。
8.8.(1,3,4,2),(1,3,2,4)
三、应用题
1.1.(22,40,45,48,80,78),(40,45,48,80,22,78)
2.2.q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q;
3.3.2,ASL=91*1+2*2+3*4+4*2)=25/9
int m;
while(i<j){
while (i<j && r[j]>x) j=j-1; if (i<j) {r[i]=r[j];i=i+1;}
while (i<j && r[i]<x) i=i+1; if (i<j) {r[j]=r[i];j=j-1;}
}
r[i]=x;
}
2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。
(A) n,e(B) e,n(C) 2n,e(D) n,2e
8.设某强连通图中有n个顶点,则该强连通图中至少有()条边。
(A) n(n-1)(B) n+1(C) n(D) n(n+1)
9.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列()方法可以达到此目的。
4.4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。
5.5.设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中度数为2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。

数据结构练习题线性表习题及答案

数据结构练习题线性表习题及答案

数据结构练习题线性表习题及答案精品文档第二章线性表一.名词解释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接______。

< bdsfid="75" p=""></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的存储地址为______。

数据库系统l试题库及答案-第2章-线性表

数据库系统l试题库及答案-第2章-线性表

知识点:线性表的逻辑结构一、填空题1.线性表是一个有限序列,结点间的关系是的。

2.线性表的存储方式分为和。

3.线性表中的数据元素可以是简单的数据类型,也可以由若干组成。

4.每个操作在层次上尚不能用具体的某种程序语言写出具体的算法,而算法只有在确立之后才可以实现。

二、选择题1.( )线性表L=(a, a,…,a),下列说法正确的是()。

A.每个元素都有一个直接前驱和一个直接后继。

B.线性表中至少要有一个元素。

C.表中诸元素的排列顺序必须是由小到大或由大到小。

D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。

2.( )在线性表的下列运算中,不改变数据元素之间结构关系的运算是()。

A.插入B.删除C.排序D.定位3.( )线性表是具有n 个()的有限序列(n>=0)。

A.表元素B.字符C.数据元素D.数据项E.信息项4. ( )以下不属于线性结构的是( )。

A.栈 B.队列 C.串 D.二维数组 E.二叉树三、判断题1.()同一线性表的数据元素可以具有不同的特性。

2.()线性表的长度n就是表中数据元素的个数,当n=0时,称为空表。

3.()基本操作的实现可以在逻辑结构分析之后进行。

知识点:线性表的顺序存储结构一、填空题1.在线性表的顺序存储结构中,元素间的逻辑关系是通过决定的。

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

3.向一个长度为n的顺序表的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动个元素。

4.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动个元素。

5.在顺序表中访问任意一结点的时间复杂度均为,因此,顺序表也称为的数据结构。

6.线性表的顺序存储是用一组连续的空间单元实现数据元素的存储,逻辑上相邻的元素的物理位置相邻。

7.向一个长度为n的顺序表中任意位置插入一个元素所需移动的平均次数为。

数据结构试题及答案

数据结构试题及答案

一、判断题: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、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。

数据结构试题集(8套卷子+答案)

数据结构试题集(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,试画出该二叉树形状,并写出它的后序遍历序列。

计算机专业基础综合数据结构(线性表)历年真题试卷汇编4

计算机专业基础综合数据结构(线性表)历年真题试卷汇编4

计算机专业基础综合数据结构(线性表)历年真题试卷汇编4(总分:66.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.静态链表中指针表示的是( )。

【中南大学2003二、2(1分)】(分数:2.00)A.下一元素的地址B.内存储器的地址C.下一元素在数组中的位置√D.左链或右链指向的元素的地址解析:2.链表不具有的特点是( )。

【电子科技大学2012一、3(2分)】【福州大学1998一、8(2分)】【南京理工大学2005一、13(1分)】(分数:2.00)A.插入、删除不需要移动元素B.可随机访问任一元素√C.不必事先估计存储空间D.所需空间与线性长度成正比解析:3.在n个结点的线性表的数组实现中,算法的时间复杂性是O(1)的操作是( )。

【哈尔滨工业大学2003二、1(1分)】(分数:2.00)A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)√B.在第i个结点后插入一个新结点(1≤i≤n)C.删除第i个结点(1≤f≤n)D.以上都不对解析:4.(1)静态链表既有顺序存储的优点,又有动态链表的优点。

所以,它存取表中第f个元素的时间与i无关。

(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

以上错误的是( )。

【南京理工大学2000一、3(1.5分)】(分数:2.00)A.(1),(2)B.(1) √C.(1),(2),(3)D.(2)解析:5.静态链表与动态链表相比,其缺点是( )。

【北京理工大学2006九、5(1分)】(分数:2.00)A.插入、删除时需移动较多数据B.有可能浪费较多存储空间√C.不能随机存取D.以上都不是解析:解析:静态链表首先要定义一个一维数组空间,每个数组元素有两个分量,一是数据元素的值,二是指针。

指针指向下一个元素在数组中的位置(下标),插入和删除时只需修改指针,不移动数据。

数据结构--线性表习题及答案

数据结构--线性表习题及答案

数据结构--线性表习题及答案第⼆章线性表⼀、选择题1、若长度为n的线性表采⽤顺序存储结构,在其第i个位置插⼊⼀个新元素算法的时间复杂度()。

A. O(log2n)B.O(1)C. O(n)D.O(n2)2、若⼀个线性表中最常⽤的操作是取第i个元素和找第i个元素的前趋元素,则采⽤()存储⽅式最节省时间。

A. 顺序表B. 单链表C. 双链表D. 单循环链表3、具有线性结构的数据结构是()。

A. 图B. 树C. ⼴义表D.栈4、在⼀个长度为n的顺序表中,在第i个元素之前插⼊⼀个新元素时,需向后移动()个元素。

A. n-iB. n-i+1C. n-i-1D. i5、⾮空的循环单链表head的尾结点p满⾜()。

A. p->next==headB. p->next==NULLC. p==NULLD. p==head6、链表不具有的特点是()。

A. 可随机访问任⼀元素B. 插⼊删除不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表长度成正⽐7、在双向循环链表中,在p指针所指的结点后插⼊⼀个指针q所指向的新结点,修改指针的操作是()。

A. p->next=q;q->prior=p;p->next->prior=q;q->next=q;B. p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;C. q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;D. q->next=p->next;q->prior=p;p->next=q;p->next=q;8、线性表采⽤链式存储时,结点的存储地址()。

A. 必须是连续的B. 必须是不连续的C. 连续与否均可D. 和头结点的存储地址相连续9、在⼀个长度为n的顺序表中删除第i个元素,需要向前移动()个元素。

《数据结构》填空作业题(答案)

《数据结构》填空作业题(答案)

《数据结构》填空作业题答案第1章绪论(已校对无误)1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。

2.程序包括两个内容:数据结构和算法。

3. 数据结构的形式定义为:数据结构是一个二元组:Data Structure =(D,S)。

4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。

5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。

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

7. 在树形结构中,数据元素之间存在一对多的关系。

8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。

9. 数据的逻辑结构包括线性结构、树形结构和图形结构3种类型,树型结构和有向图结构合称为非线性结构。

10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。

11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。

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

13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。

14. 数据结构在物理上可分为顺序存储结构和链式存储结构。

15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。

16. 数据元素可由若干个数据项组成。

17. 算法分析的两个主要方面是时间复杂度和空间复杂度。

18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。

19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。

20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切的定义,并在有穷时间内计算出结果。

数据结构(C++版)课后答案_(王红梅)第2章_线性表

数据结构(C++版)课后答案_(王红梅)第2章_线性表
⑾ 在一个单链表中,已知 q 所指结点是 p 所指结点的直接前驱,若在 q 和 p 之间插入 s 所指结点,则执行( )操作。 A s->next=p->next; p->next=s; B q->next=s; s->next=p; C p->next=s->next; s->next=p; D p->next=s; s->next=q; 【解答】B 【分析】注意此题是在 q 和 p 之间插入新结点,所以,不用考虑修改指针的顺序。
⑹ 在由尾指针 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)
⑻ 可由一个尾指针唯一确定的链表有( )、( )、( )。 【解答】的顺序存储结构是一种( )的存储结构,线性表的链接存储结构是一种( )的存储结构。
⑻ 在具有 n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( )。 A O(1) B O(n) C O(n2) D O(nlog2n) 【解答】B
⑼ 对于 n 个元素组成的线性表,建立一个有序单链表的时间复杂度是( )。 A O(1) B O(n) C O(n2) D O(nlog2n) 【解答】C 【分析】该算法需要将 n 个元素依次插入到有序单链表中,而插入每个元素需 O(n)。

数据结构选择填空题库

数据结构选择填空题库

习题2 线性表、栈、队列一、单项选择题1. 线性表是___A_____。

A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2. 在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动B 个元素。

A.n-iB.n-i+lC.n-i-1D.i3. 线性表采用链式存储时,其地址____D____。

A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较_____C___个元素结点。

A.n/2B.nC.(n+1)/2D.(n-1)/25. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是__D__。

A.p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B.s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C.p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D.s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;6. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为___A_____。

6.A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p;7. 在一个长度为n的顺序表中向第i个元素(0<i<n+l )之前插入一个新元素时,需向后移动___B___个元素。

数据结构考试试题及答案

数据结构考试试题及答案

数据结构考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么类型的数据结构来实现?A. 栈B. 队列C. 数组D. 链表答案:C2. 下列选项中,哪一个不是二叉树的性质?A. 任意节点的左子树和右子树的深度可能不同B. 任意节点的左子树和右子树的深度相同C. 任意节点的左子树和右子树的节点数可能不同D. 任意节点的左子树和右子树的节点数相同答案:B3. 哈希表的冲突解决方法不包括以下哪种?A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D4. 以下哪种排序算法的时间复杂度最低?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B5. 在图的遍历算法中,深度优先搜索(DFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:B6. 以下哪种数据结构可以有效地实现稀疏矩阵的存储?A. 顺序存储B. 链表C. 散列D. 邻接矩阵答案:C7. 在二叉搜索树中,插入一个新节点后,树的平衡因子可能为:A. -2B. 0C. 2D. 3答案:A8. 堆数据结构中,父节点的值总是大于其子节点的值,这种堆被称为:A. 最小堆B. 最大堆C. 完全二叉树D. 满二叉树答案:B9. 以下哪个算法不是动态查找表的算法?A. 直接查找B. 二分查找C. 斐波那契查找D. 哈希查找答案:A10. 在图的遍历算法中,广度优先搜索(BFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种______结构,遵循后进先出(LIFO)的原则。

答案:线性2. 一个具有n个顶点的无向图的边数最多为______。

答案:n*(n-1)/23. 快速排序算法的时间复杂度在最坏情况下为______。

答案:O(n^2)4. 在哈希表中,如果一个关键字的哈希地址已经被占用,则需要进行______。

数据结构-线性表习题及解析

数据结构-线性表习题及解析

线性表典型例题一、单项选择题[例7-1]在数据结构中,与所使用计算机无关的数据叫( ①)结构;链表是一种采用( ②)存储结构存储的线性表;链表适用于( ③)查找;在链表中进行( ④)操作的效率比在线性表中进行该操作的效率高。

①A.存储B.物理C.逻辑D.物理和逻辑②A.顺序B.网状C.星式D.链式③A.顺序B.二分法C.顺序及二分法D.随机④A.二分法查找B.快速查找C.顺序查找D.插入解析:本题考查的是基本概念。

本题答案为:①C;②D;③A;④D。

[例7-2] 链表不具备的特点是( )。

A.插入和删除不需要移动元素B.可随机访问任一结点C.不必预分配空间D.所需空间与其长度成正比解析:线性表可随机访问任一结点,而链表必须从第一个数据结点出发逐一查找每个结点。

本题答案为:B。

[例7-3] 不带头结点的单链表head为空的判定条件是( )。

A.head==NULL B.head_>next==NULLC.head_>next==head D.head!=NULL解析:在不带头结点的单链表head中,head指向第一个数据结点。

空表即该表没有结点,head==NULL表示该单链表为空。

本题答案为:A。

[例7-4] 带头结点的单链表head为空的判定条件是( )。

A.head==NULL B.head—>next==NULLC.head—> next==head D.head!=NULL解析:在带头结点的单链表head中,head指向头结点。

空表即该表只有头结点,head —>next==NULL表示该单链表为空。

本题答案为:B。

[例7-5] 带头结点的循环单链表head中,head为空的判定条件是( )。

A.head==NULL B.head—>next==NULLC.head—> next==head D.head!=NULL解析:在带头结点的循环单链表head中,head指向头结点。

线性表填空试题 数据结构

线性表填空试题     数据结构

数据结构复习题:线性表填空题1、在线性结构中第一结点_____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后继结点。

2、对于顺序存储的线性表,当随机插入或删除一个元素时,约需平均移动表长______的元素。

3、对于长度为n的顺序表,插入或删除元素的时间复杂性为________;对于顺序栈或队列,插入或删除元素的时间复杂性为_________。

4、在线性表的顺序存储中,元素之间的逻辑关系是通过__________决定的;在线性表的链接存储中,元素之间的逻辑关系是通过____________决定的。

5、一个单链表中删除*p结点时,应执行如下操作:(1)q=p->next;(2)p->data=p->next->data;(3)p->next=__________;(4)free(q);6、对于线性表的顺序存储,需要预先分配好存储空间,若分配太多则容易造成存储空间的__________,若分配太少又容易在算法中造成__________,因此适应于数据量变化不大的情况;对于线性表的链接存储(假定采用动态结点),不需要__________存储空间,存储器中的整个__________都可供使用,分配和回收结点都非常方便,能够有效地利用存储空间,在算法中不必考虑__________的发生,因此适应数据量变化较大的情况。

7、从顺序表中删除第i个元素时,首先把第i个元素赋给__________带回,接着从_____________开始向后的所有元素均___________一个位置,最后使线性表的长度_____________。

8、向一个长度为n的顺序表中的第i个元素(0<=i<=n-1)之前插入一个元素时,需向后移动______个元素。

9、在一个长度为n的顺序表删除第i个元素(0<=i<=n-1)时,需向前移动______个元素。

数据结构程序填空复习题

数据结构程序填空复习题

《数据结构》程序填空复习题说明:本文档中涉及到的算法并非本书的全部,有些可根据此处的情况自行看书和作业题,黑色为综合练习上的题目,红色为我另增加的题,这些空的选择是根据我个人的经验来决定的并不能完全代表中央电大的出卷老师,因此一定不能有肯定就考这些题目的想法。

不能放弃其他容的复习,切记!!!一、线性表1.设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。

#define NULL 0void main( ){NODE a,b,c,d,*head,*p;a.data=6;b.data=10;c.data=16;d.data=4; /*d是尾结点*/head= (1);a.next=&b;b.next=&c;c.next=&d;(2); /*以上结束建表过程*/p=head; /*p为工作指针,准备输出链表*/do{printf(“%d\n”, (3));(4);}while( (5));}答案:(1)&a(2)d next=NULL(3)p->data(4)p=p->next(5)p!=NULL2. 以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,struct node{ int data;struct node *next;};typedefstruct node NODEint delete(NODE *head,int i){NODE *p,*q;int j;q=head;j=0;while((q!=NULL)&&( ___(1)_____)){___(2)_____;j++;}if(q==NULL)return(0);p= ___(3)_____;___(4)_____=p->next;free(___(5)_____);return(1);}答案:(1)j<i-1(2)q=q->next(3)q->next(4)q->next(5)p3.将新元素插入到线性表中的第i位,MAX是数组的个数,a[0]用以存放线性表长度,b存放待插入的元素值,i存放插入的位置,n存放线性表长度{int a[MAX];int i,j,b,n;scanf(“%d%d%d”,&b,&i,&n);for(j=1;j<=n;j++)scanf(“%d”,&a[j]);a[0]=n;for(j=n; (1);j- -)(2);(3);(4);for(j=1;j<=a[0];j++)printf(“%5d\n”,a[j]);}答案:(1)j>=i(2)a[j+1]=a[j](3)a[i]=b(4)a[0]=n+14.用头插法建立带头结点且有n个结点的单向链表的算法NODE *create(n){NODE *head,*p,*q;int ip=(NODE *)malloc(sizeof(NODE));(1);(2);(3);for(i=1;i<=n;i++){p=(NODE *)malloc(sizeof(NODE));p->data=i;if(i==1)(4);else{(5);(6);}}return(head);}答案:(1)head=p(2)p->next=NULL(3)q=p(4)p->next=NULL(5)p->next=q->next(6)q->next=p一、栈1. 以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针struct node{ ElemType data;struct node *next;};struct node *top ;void Push(ElemType x){struct node *p;p=(struct node*)malloc(___(1)_____);p->data=x;___(2)_____;}答案:(1)sizeof (struct node)(2)p->next=top(3)top=p二、队列1. 以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;void InQueue(ElemType x){struct node *p;p= (struct node*) ___(1)_____;p->data=x;p->next=NULL;___(2)_____;rear= ___(3)_____;}答案:(1)malloc(sizeof (struct node))(2)rear->next=p(3)p2. 以下函数为链队列的出队操作(链队列带有头结点),出队结点的数据域的值由x返回,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;ElemType OutQueue(){ElemType x;if(___(1)_____) {printf("队列下溢错误!\n");exit(1);}else {struct node *p=front->next;x=p->data;front->next= ___(2)_____;if(p->next==NULL) rear=front;free(p);___(3)_____;}}答案:(1)front= =rear(2)p->next(3)return(x)三、树1.以下程序是先序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。

PTA 第二章 线性表作业及答案 数据结构平时作业

PTA 第二章 线性表作业及答案 数据结构平时作业
6.二维数组A[7][8]以列序为主序的存储,计算数组元素A[5][3]的一维存储空间下标k=(C)。
A. 38 B. 43 C. 26 D. 29
2、完成下列填空题(每空3分,共9分)。
1.在顺序表L中第i个位置上插入一个新的元素e:
Status ListInsert_Sq(SqList &L , int i , ET e){
}
for( j=L.length ; j>=i ; --j )
___L.elem[j]=L.elem[j-1]____;
L.elem[j]=e ;
++L.length_______;
return OK;
}
2.删除双向(DuLinkList L, DuLinkList p) {
}
for (k=0,i=0;i<A.length;i++)
{
if(A.data[i]==’#’) k++;
else A.data[i-k]= A.data[i];
}
A.length= A.length-k;
}
2.(15分)已知带头结点的单循环链表L,编写算法实现删除其中所有值为e的数据元素结点。
(要求:类型定义、算法描述和算法时间复杂度分析)
return;
p = L;
while (p->next != L)
{
if (p->next->data != e)
P = p->next;
else
{ q = p->next;p->next = q->next; free(q);}
}
}
时间复杂度为O(n)。(2分)

数据结构(线性表习题含答案)

数据结构(线性表习题含答案)

数据结构第二章线性表习题含答案说明:顺序存储的线性表称为向量。

一,单项选择题一个向量第一个元素的地址是100,每个元素的长度为2,则第5个元素的地址是__①_B__。

A) 110 B) 108 C) 100 D) 120线性结构通常采用的两种存储结构是__①A___。

A) 顺序存储结构和链式存储结构B) 散列方式和索引方式C) 链表存储结构和数组D) 线性存储结构和非线性存储结构不带头结点的单链表head为空的判定条件是__①__A_.A) head==NULL B) head->next==NULLC) head->next==head D) head!=NULL带头结点的单链表head为空的判定条件是__①B___。

A) head==NULL B) head->next==NULLC) head->next==head D) head!=NULL非空的循环链表head的尾结点(由p所指向)满足__①_C__。

A) p->next==NULL B) p==NULLC) P->next==head D) p==head在循环双链表的p所指结点之后插入s所指结点的操作是___①_C_。

A) p->right=s; s->left=p; p->right->left=s; s->right=p->right;B) p->right=s; p->right->left=s; s->left=p; s->right=p->right;C) s->left=p; s->right=p->right; p->right=s; p->right->left=s;D) s->left=p; s->right=p->right; p->right->left=s; p->right=s;在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点, 则执行__①c___。

数据结构填空题

数据结构填空题

1.数据元素是(数据)的基本单位,是对一个客观实体的数据描述。

2.简单的说,数据结构是指数据之间的(逻辑关系),即数据的(逻辑结构)。

3.数据的逻辑结构可形式的用一个二元组B=(K,R)来表示,其中K表示(数据元素的集合),R表示(关系的集合)。

4.数据元素之间的关系有四种基本的存储表示方法即,(顺序存储),(链式存储),(索引存储),(散列存储)。

5.数据的集中运算中,(创建)是一个很重要的运算过程,插入,删除,修改,排序都包含着这种运算。

1、线性表示一种最简单、常用的数据结构,通常一个线性表由n个性质相同的数据元素组成的(一个有限序列),其长度即为线性表中元素的个数n,当n=0时,称(空表)。

2、线性表是一种(顺序存储)结构。

3、线性表的顺序存储有哪些特点?1.、元素特性相同2、线性结构3、元素个数n>=04、线性表的链式存储有哪些特点?5、如果线性表中最常用的操作是存取第I个元素及其前驱的值,则采用(顺序)存储方式节省时间。

5、线性表的两种存储结构其中(顺序)存储密度较大;(顺序)存储利用率较高;(链式)可以随机存取;(顺序)不可以随机存取;(链式)插入和删除操作比较方便。

6、什么叫直接前驱元素,什么叫直接后继元素?1、栈是限定仅在(一端)进行插入删除操作的线性表。

允许进行插入删除的一端为(栈顶),另一端为(栈底)。

2、栈的运算有(进栈)、(出栈)、()、(初始化栈)和(销毁栈)。

3、栈有两种存储表示方法:(顺序栈)和(链栈)。

4、队列只允许在一端进行(插入),在另一端(删除)。

5、队尾指(进行插入元素的一端),对头指(进行删除元素的一端)。

6、设栈S和队列Q的初始状态皆为空,元素a,b,c,d,e,f依次通过一个栈,一个元素出栈后即进入队列Q,若6个元素的出队列的顺序是c,e,d,f,b,a则栈S至少应该容纳(3)个元素。

7、栈和队列的逻辑结构都是(链式存储)。

8、如果某栈的初始为空,push和pop分别表示对堆栈进行一次进栈与出栈操作,那么,对于输入序列a,b,c,d,e,依次经过push,push,pop,push,pop,push,push,pop以后,输出序列应该是(bceda)。

数据结构习题(1-5章)

数据结构习题(1-5章)

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

数据结构复习题:线性表
填空题
1、在线性结构中第一结点_____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后继结点。

2、对于顺序存储的线性表,当随机插入或删除一个元素时,约需平均移动表长______的元素。

3、对于长度为n的顺序表,插入或删除元素的时间复杂性为________;对于顺序栈或队列,插入或删除元素的时间复杂性为_________。

4、在线性表的顺序存储中,元素之间的逻辑关系是通过__________决定的;在线性表的链接存储中,元素之间的逻辑关系是通过____________决定的。

5、一个单链表中删除*p结点时,应执行如下操作:
(1)q=p->next;
(2)p->data=p->next->data;
(3)p->next=__________;
(4)free(q);
6、对于线性表的顺序存储,需要预先分配好存储空间,若分配太多则容易造成存储空间的__________,若分配太少又容易在算法中造成__________,因此适应于数据量变化不大的情况;对于线性表的链接存储(假定采用动态结点),不需要__________存储空间,存储器中的整个__________都可供使用,分配和回收结点都非常方便,能够有效地利用存储空间,在算法中不必考虑__________的发生,因此适应数据量变化较大的情况。

7、从顺序表中删除第i个元素时,首先把第i个元素赋给__________带回,接着从_____________开始向后的所有元素均___________一个位置,最后使线性表的长度_____________。

8、向一个长度为n的顺序表中的第i个元素(0<=i<=n-1)之前插入一个元素时,需向后移动______个元素。

9、在一个长度为n的顺序表删除第i个元素(0<=i<=n-1)时,需向前移动______个元素。

10、在单链表中设置头结点的作用是___________。

11、在单链表中,要删除某一指定的结点,必须找到该结点的_______结点。

12、访问单链表中的结点,必须沿着________依次进行。

13、在双链表中,每个结点有两个指针域,一个指向________,另一个指向_________。

14、在______链表上,删除最后一个结点,其算法的时间复杂度为O(1)。

15、在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作。

(1)s->next=_________。

(2)p->next=s;
(3)t=p->data;
(4)p->data=_________。

(5)s-.data=_________。

16、在一个单链表中删除p所指结点时,应执行以下操作:
q=p->next;
p_data=p->next->data;
p->next=______;
free(q);
17、在一个单链表中p所指结点之后插入一个s所指结点时,应执行s->next=_______和p->next=________的操作。

18、对于一个具有n个结点的单链表,在*p结点后插入一个新结点的时间复杂度是________;在给定值为x的结点后插入一后新结点的时间复杂度是________。

19、在线性表的顺序存储中,元素之间的逻辑关系是通过______决定的;在线性表的链式存储中,元素之间的逻辑关系是通过______决定的。

20、在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动_______个元素。

21、为了设置一个空的顺序表L,采用的操作是______。

22、删除顺序表的______元素,不需要移动任何元素。

23、删除顺序表的______元素,不需要移动的元素最多。

24、在顺序表_____元素后面插入一个元素,不需要移动任何元素。

25、插入顺序表的______元素,需要移动的元素最多。

26、在长度为n的顺序表L中查找指定元素值的元素,其时间复杂度为______。

27、求单链表长度的时间复杂度为_______。

28、删除单链表L中某结点*p之后的一个结点,其时间复杂度为______。

29、删除单链表L中某结点*p之前的一个结点,其时间复杂度为______。

30、在一个单链表(己知每个结点含有数据域data和指针域next)中删除p所指结点时,应执行以下操作:
(1)q=p->next;
(2)p->data=q->data;
(3)p->next = _____;
(4)free(q);
31、在一个单链表中的p所指结点之后插入*s结点时,应执行s->next=_____和p->next______的操作。

32、对于一个具有n个结点的单链表,在*p结点后插入一个新结点的时间复杂度是_______;在给定值为x的结点后插入一个新结点的时间复杂度是_______。

33、删除双链表L中某结点*p之后的一个结点,其时间复杂度为_______。

34、删除双链表L中某结点*p之前的一个结点,其时间复杂度为_______。

35、在非循环的______链表中,可以用表尾指针代替表头指针。

36、对于双链表,在两个结点之间插入一个新结点需要修改的指针共______。

37、在一个双链表中,若要在*p结点之前插入结点*q,则执行的操作是______。

38、循环单链表L为空的条件是______。

39、在单链表中,结点与结点之间的逻辑关系不是通过存储单元的顺序来表示的,而是通过______来实现的.
40、对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为____________,在表尾插入元素的时间复杂度为____________。

41、对于一个单链接存储的线性表,在表头插入结点的时间复杂度为____________,在表尾插入元素的时间复杂度为____________。

42、在线性表的顺序存储中,若一个元素的下标为i,则它的前驱元素的下标为____________,后继元素的下标为____________。

43、在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为____________,若p为一个数组a中的下标,则其后继结点的下标的____________。

44、在循环单链表中,最后一个结点的指针域指向____________结点。

45、在双向链表中每个结点包含有两个指针域,一个指向其____________结点,另一个指向其____________结点。

46、在循环双向链表中表头结点的左指针域指向____________结点,最后一个结点的右指针
域指向____________结点。

47、在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为____________和____________。

50、在由数组a中元素结点构成的单链表中,在下标为i的结点的后面插入一个下标为j的结点时,需要进行的操作为____________和____________语句。

相关文档
最新文档