线性表练习题

合集下载

数据结构_线性表练习题

数据结构_线性表练习题

一、判断题1. 线性表的逻辑顺序与存储顺序总是一致的。

(FALSE)2. 顺序存储的线性表可以按序号随机存取。

(TRUE)3.顺序表的插入和删除一个数据元素,每次操作平均只有近一半的元素需要移动。

TRUE)4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。

(TRUE)5,在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。

(FALSE )6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。

(TRUE)7.线性表的链式存储结构优于顺序存储结构。

(FALSE )8. 在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。

(TRUE)9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。

(TRUE)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。

(FALSE )二.选择题11.线性表是()。

(A)一个有限序列,可以为空;(B)一个有限序列,不能为空;(C)一个无限序列,可以为空;(D)一个无序序列,不能为空。

答:A12.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。

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

(A)n/2(B)(n+1)/2(C)(n–1)/2(D)n答:A13.线性表采用链式存储时,其地址()。

(A)必须是连续的;(B)部分地址必须是连续的;(C)一定是不连续的;(D)连续与否均可以。

答:D14.用链表表示线性表的优点是()。

(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同答:C15.单链表中,增加一个头结点的目的是为了()。

(A)使单链表至少有一个结点(B)标识表结点中首结点的位置(C)方便运算的实现(D)说明单链表是线性表的链式存储答:C16.若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省运算时间()。

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

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

一、单选题1、在长度为n的顺序表中的第i( 1 <= i <= n+1 )个位置上插入一个元素,其算法时间复杂度为()。

A.O(n*n)B.O(log2n)C.O(1)D.O(n)正确答案:D2、在长度为n的顺序表中的第i( 1 =< i <= n+1 )个位置上插入一个元素,需要移动的元素个数为()。

A.iB.n-i+1C.n-i-1D.n-i正确答案:B3、链表不具有的特点是()。

A.插入、删除不需要移动元素B.不必事先估计存储空间C.可随机访问任一元素D.所需存储空间与线性表程度成正比正确答案:C4、在一单链表中,删除指针p所指的后继结点,以下语句正确的是()。

A.p->next=p->next->next; free(p->next);B. p=p->next;C.free(p->next);p->next=p->next->next;D.s=p->next;p->next=s->next;free(s);正确答案:D5、假设删除长度为n的顺序表中的每个元素的概率相同,则删除一个元素平均要移动的元素个数是()。

A.nB.n/2C.(n-1)/2D.(n+1)/2正确答案:C6、设某顺序表中第一个元素的地址是Base,每个结点占m个单元,则第i个结点的地址为()。

A.Base+(i-1)×mB.Base+(i+1)×mC.Base-i×mD.Base+i×m正确答案:A7、长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i 的合法值应该是()。

A.1≤i≤n-1B.0≤i≤n+1C.i>0D.1≤i≤n+1正确答案:D解析:一般插入位置从1开始。

8、非空单链表结点结构为【data,next】,若指针p所指结点是尾结点,则()表达式为真。

第二章 线性表 练习题

第二章 线性表 练习题

一、选择题1.线性表的链接实现有利于( A )运算。

(A)插入 (B)读表元 (C)查找 (D)定位2.设单链表中指针p指向结点A,若要删除A之后的结点(若存在),则修改指针的操作为( A)。

(A)P一>next=p一>next一>next (B)p=P一>next(C)p=P一>next一>next (D)p一>next=p3.线性表采用链式存储时,其地址( D )。

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

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

(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.已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分查找值为90的元素时,需( D )次比较可查找成功。

(A)1 (B)2 (C)3 (D)47.在顺序存储的线性表R[029]上进行顺序查找的平均查找长度为(①),进行二分查找的平均查找长度为(②),讲行分块查找(设分为5块)的平均查找长度为(③)①(A)15 (B)15.5 (C)16 (D)20②(A)4 (B)62/15 (C)64/15 (D)25/6③(A)6 (B)11 (C)5 (D)6.58.若线性表最常用的操作是存取第i个元素及其前驱元素的值,则采用( B )存储方式最节省时间。

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

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

线性表典型例题一、单项选择题[例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. 下面关于线性表的叙述错误的是()。

A.线性表采用顺序存储必须占用一片连续的存储空间B. 线性表采用链式存储不必占用一片连续的存储空间C. 线性表采用链式存储便于插入和删除操作的实现D. 线性表采用顺序存储便于插入和删除操作的实现2. 设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。

A.q=p->next;p->data=q->data;p->next=q->next;free(q);B. q=p->next;q->data=p->data;p->next=q->next;free(q);C. q=p->next;p->next=q->next;free(q);D. q=p->next;p->data=q->data;free(q);3. 设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。

n) C. O(1) D. O(n2)A. O(n)B. O(nlog24.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。

A. O(logn) B. O(1) C. O(n2) D. O(n)25.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。

A. head==0B.head->next==0C. head->next==headD.head!=06.设带有头结点的单向循环链表的头指针变量为head,则其判空条件是()。

A. head==0B. head->next==0C. head->next==headD. head!=07.建立一个长度为n的有序单链表的时间复杂度为()A. O(n)B. O(1)C. O(n2)D. O(logn)28.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动()个元素。

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

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

数据结构--线性表习题及答案第⼆章线性表⼀、选择题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.线性表中______称为线性表的长度。

A、元素的长度B、数据项的数目C、数据的长度D、元素的个数2.线性表是具有n个______的有限序列(n>0)。

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个特性,下面对另外4个特性的描述中错误的是______。

A、可行性B、有零个或多个输入C、有穷性D、有零个或多个输出9.衡量一个算法的质量除了正确性之外,最重要的是要考查______。

A、可行性B、有穷性C、时间复杂度和空间复杂度D、输入和输出10.线性链表(动态)是通过______方式表示元素之间的关系的。

A、保存后继元素地址B、元素的存储顺序C、保存左、右孩子地址D、保存后继元素的数组下标11.设顺序表的每个元素占8个存储单元。

第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为______。

A、139B、140C、147D、14812.设顺序表的长度为n,并设从表中删除元素的概率相等。

则在平均情况下,从表中删除一个元素需移动的元素个数是______。

数据结构-线性表-习题

数据结构-线性表-习题

第二章线性表一、选择题1.线性表是()A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2.一维数组与线性表的特征是()。

A.前者长度固定,后者长度可变B.两者长度均固定C.后者长度固定,前者长度可变D.两者长度均可变3.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是( ).A.当前结点所在地址域B.指针域C.空指针域D.空闲域4.用链表表示线性表的优点是()。

A.便于随机存取B.便于进行插入和删除操作C.占用的存储空间较顺序表少D.元素的物理顺序与逻辑顺序相同5.在具有 n 个结点的单链表中,实现___的操作,其算法的时间复杂度都是O(n)。

A.遍历链表和求链表的第i个结点D.删除地址为P的结点的后继结点B.在地址为P的结点之后插入一个结点 C.删除开始结点6.下面关于线性表的叙述中,错误的是()。

A.线性表采用顺序存储必须占用一片连续的存储单元B.线性表采用顺序存储便于进行插入和删除操作C.线性表采用链式存储不必占用一片连续的存储单元D.线性表采用链式存储便于进行插入和删除操作7.已知单链表的每个结点包括一个指针域next,它指向该结点的后继结点。

现要将指针 q 指向的新结点插入到指针 p 指向的结点之后,下面的操作序列中正确的是()。

A . q = p->next; p->next = q->next ;B . p->next = q->next; q = p->next ;C . q->next = p->next; p->next = q ;D . p->next = q; q->next = p->next ;8.设 a l,a2, a3为三个结点; p , 10 , 20 代表地址,则如下的链表存储结构称为()。

A.链表B.单链表C.双向循环链表D.双向链表9.单链表的存储密度()。

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

一、火车出栈序列
(train.pas)
【题目描述】
输入n(n列火车),输出火车出栈的所有可能顺序。

【输入样例】
3
【输出样例】
3 2 1
2 3 1
2 1 3
1 3 2
1 2 3
【数据规模】
3<=n<=12
二、括号匹配
(LongestRegularBracketsSequence.pas)
【题目描述】
对一个由(,),[,]括号组成的字符串,求出其中最长的括号匹配子串。

具体来说,满足如下条件的字符串称为括号匹配的字符串:1.(),[]是括号匹配的字符串
2.若A是括号匹配的串,则(A),[A]是括号匹配的字符串
3.若A,B是括号匹配的字符串,则AB也是括号匹配的字符串。

例如,(),[],([]),()()都是括号匹配的字符串,而][,[()],(]则不是。

字符串A的子串是指由A中连续若干个字符组成的字符串。

例如:A,B,C,ABC,CAB,ABCABC都是ABCABC的子串空串是任何字符串的子串。

【输入格式】
输入一行,为一个仅由()[]组成的非空字符串。

【输出格式】
输入也仅有一行,为最长的括号匹配子串。

若有相同长度的子串,
输出位置靠前的子串。

【数据规模】
对20%的数据,字符串长度<=100;
对50%的数据,字符串长度<=10,000;
对100%的数据,字符串长度<=1,000,000;
三、马的最短步数
(horse.pas)
【题目描述】
求马在棋盘上从某个起点到某个终点的最少步数。

【输入格式】
第一行,n,m,表示棋盘有n行m列;(2<n<=1000 2<=m<=1000) 第二行,x1,y1,x2,y2,表示马的起点位于第x1行、y1列,终点是第x2行、y2列。

(1<=x1,x2<=n 2<=y1,y2<=m)
【输出格式】
一个整数,即最少步数。

【输入样例】:
2 3
1 1
2 3
【输出样例】:
1
四、细胞数目
(cell.pas)
【题目描述】
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。

【输入格式】:
整数m,n(m行,n列)(n,m<=1000)
矩阵
【输入格式】:
细胞的个数。

样例:
【输入样例】:
4 10
023*******
1034560500
2045600671
0000000089
【输出样例】:
4
五、素数路
(prime.pas)
【问题描述】
内阁大臣非常沮丧,他收到了安全部长的消息:他们都需要改变办公室的四位房间号码。

安全部长:经常换换房间号码是出于安全方面的考虑,可以让敌人陷入迷惑。

内阁大臣:但是我选择1033作为我的房间号是出于我个人的偏爱。

我可是内阁大臣。

安全部长:你不就是喜欢素数吗?我们给你安排了8179这个号码,你只需要贴四个新数字覆盖住以前的四个老数字就可以了。

内阁大臣:不行,没有那么容易。

当我把1033的1用8盖住的时候,8033可不是个素数!
安全部长:我知道,你不能允许你的门上出现非素数。

内阁大臣:正确!所以我必须找到一个方法从1033修改到8179,使得过程中门上出现的永远是素数,而且每次只能够修改当前数字的一位。

这个时候,在旁边偷听的财政大臣忍不住来插嘴。

财政大臣:千万不要为了这个事情增加不必要的开支!我知道换一个数字就是要花一磅!
内阁大臣:那我需要一个计算机来规划一下。

财政大臣:我能够帮助你!
现在这个任务就交给你了。

你要从一个四位数的素数出发,每次修改其中的一位,并且要保证修改的结果还是一个素数,还不能出现前导零。

你要找到一个修改次数最少的方案,得到我们所需要的素数。

关于1033怎么变到8179,这里是一个最短的方策:
1033
1733
3733
3739
3779
8779
8179
修改了6次,所以要花6磅。

【输入格式】
一行,两个四位的素数(没有前导零),表示初始数和目标数。

【输出格式】
一个数,表示最少的操作次数。

如果不可能,输出“Impossible”。

相关文档
最新文档