线性表习题

合集下载

第三章 线性表习题

第三章 线性表习题

第三章 线性表填空题1.线性表的顺序存储结构通过 来直接反映数据元素之间的逻辑关系,而链式存储结构通过 间接反映数据元素之间的逻辑关系。

2.在线性表的顺序存储结构中,逻辑位置相邻的数据元素在 上也相邻,而链式存储结构中,逻辑位置相邻的数据元素在物理位置上 相邻。

3.线性表的链式存储结构主要包括 、 和 三种形式,其中最基本的形式是 。

4.从结构上来看,循环单链表与非循环单链表的不同在于 。

5.一元多项式f(x)=9x13-4x8+3x-5的线性链表表示是 。

6.栈和队列的逻辑结构都是 结构。

7.栈是一种特殊的线性表,其特殊性是 。

8.队列是一种特殊的线性表,其特殊性是 。

9.栈的插入与删除操作都是在 位置进行的;而队列的插入在 进行,删除操作在 进行。

选择题10.中缀形式的算术表达式A+(B-C/D)*E的后缀形式是 。

11.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是 。

A.112B.144C.148D.41212.若频繁地对线性表进行插入和删除操作,该线性表应该采用 存储结构。

A.散列B.顺序C.链式D.索引13.若长度为n的非空线性表采用顺序储存结构,删除表中第i个数据元素是,需要移动表中 个数据元素。

A.n+iB.n-iC.n-i+1D.n-i-114.若长度为n的线性表采用顺序储存结构,在表的第i个位置插入一个数据元素,需要移动表中 个数据元素。

A.n+iB.n-iC.n-i+1D.n-i-115.若长度为n的线性表采用顺序储存结构,在表的第i个位置插入一个数据元素的算法的使劲复杂性是 。

A.O(n)B. O(n2)C. O(nlog2n)D. O(log2n)16.线性链表中各结点的地址 。

A.必须连续B.一定不连续C.部分地址必须连续D.可能连续也可能不连续17.在一个具有n个结点的线性链表中查找一个结点,若查找成功,需要平均比较( )个结点。

第二章线性表习题

第二章线性表习题

第二章线性表习题1 .填空题(1) 链表中逻辑上相邻的元素的物理位置( ) 相连。

(2) 在单链表中除首结点外,任意结点的存储位置都由( ) 结点中的指针指示。

(3) 在单链表中,设置头结点的作用是在插入或删除首结点时不必对( ) 进行处理。

(4) 已带头结点的单链表L ,指针p 指向L 链表中的一个结点,指针q 是指向L 链表外的一个结点,则:在指针p 所指结点后插入q 所指结点的语句序列是( ) ;在指针p 所指结点前插入q 所指结点的语句序列是( ) ;将q 所指结点插入在链表首结点的语句序列是( ) ;将q 所指结点插入在链表尾结点的语句序列是( ) 。

(5) 已知带表头结点的单链表L ,指针p 指向L 链表中的一个结点(非首结点,非尾结点),则:删除指针p 所指结点的直接后继结点的语句是( ) 。

删除指针p 所指结点的直接前驱结点的语句序列是( ) 。

删除指针p 所指结点的语句序列是( ) 。

删除首结点的语句序列是( ) 。

⑤删除尾结点的语句序列是( ) 。

(6) 已知指针p 指向双向链表中的一个结点(非首结点,非尾结点),则:将结点s 插入在指针p 所指结点的直接后继位置的语句是( ) 。

将结点s 插入在指针p 所指结点的直接前驱位置的语句是( ) 。

删除指针p 所指结点的直接后继结点的语句序列是( ) 。

删除指针p 所指结点的直接前驱结点的语句序列是( ) 。

⑤删除指针p 所指结点的语句序列是( ) 。

(7) 线性表的存储结构有顺序存储和( ) 存储两种。

(8) 线性表的元素长度为4 ,在顺序存储结构下Loc(ai)=2000 ,则Loc(ai +1)=( ) 。

(9) 线性表a 的元素长度为L ,在顺序存储结构下Loc(ai)=Loc(a1)+( ) 。

(10) 在线性表的链式存储结构中,某结点的指针字段指向该结点的( ) 两种存储。

(11) 线性表的元素长度为4 ,Loc(ai +1)=1000 ,则Loc(a3)=( ) 。

数据结构_线性表练习题

数据结构_线性表练习题

一、判断题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.线性表的链接实现有利于( 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 )存储方式最节省时间。

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

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

数据结构--线性表习题及答案第⼆章线性表⼀、选择题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、线性表是具有n 个______ 的有限序列。

A.数据项B.字符C.数据元素D.表元素正确答案:C2、线性表是_______。

A.一个无限序列,可以为空B.一个有限序列不可以为空C.一个无限序列,不可以为空D.一个有限序列,可以为空正确答案:D3、关于线性表的正确说法是_______。

A.每一个元素都有一个前驱和一个后继元素B.除第一个元素和最后一个元素外,其余元素有且仅有一个前驱和一个后继元素C.表中元素的排序顺序必须是由小到大或者由大到小D.线性表中至少有一个元素正确答案:B4、线性表采用链表存储时,其存放各个元素的单元地址是_______。

A.连续与否均可以B.部份地址必须是连续的C.一定是不连续的D.必须是连续的5、链表不具备的特点是_______。

A.插入删除不需要挪移元素B.所需空间与其长度成正比C.不必事先估计存储空间D.可随机访问任一节点正确答案:D6、线性表的静态链表存储结构与顺序存储结构相比,优点是_______。

A.所有的操作算法实现简单B.便于利用零散的存储器空间C.便于随机存取D.便于插入和删除正确答案:D7、线性表的顺序存储结构和链式存储结构相比,优点是_______。

A.便于随机存取B.便于插入和删除C.所有的操作算法实现简单D.节省存储空间正确答案:A 8、设线性表有n 个元素,以下操作中,_______在顺序表上实现比在链表上实现效率高。

A.交换第1 个元素第2 个元素的值B.输出与给定值x 相等的元素在线性表中的符号C.输入第i ( 1<=i<=n )个元素值D.顺序输出这n 个元素的值正确答案:C9、对于一个线性表,既要求能够较快地进行插入和删除操作,又要求存储结构能够反映数据元素之间的逻辑关系,则应采用_______ 存储结构。

A.顺序B.链式C.散列D.索引正确答案:B10、设线性表中有n 个元素,以下操作,_______ 在单链表上实现要比在顺序表上实现效率高。

习题1 线性表

习题1 线性表

习题1 线性表班级姓名学号日期选择题1.下面关于线性表叙述中,错误的是_ _。

A.顺序表必须占用一片地址连续的存储单元B.链表不必占用一片地址连续的存储单元C.顺序表可以随机存取任一元素D.链表可以随机存取任一元素2.在表长为n的单链表中,算法时间复杂度为O(n)的操作是。

A.查找单链表中第i个结点 B.在p结点之后插入一个结点C.删除表中第一个结点 D.删除p结点的直接后继结点3.在表长为n的顺序表中,算法的时间复杂度为O(1)的操作是。

A.在第n个结点之后插入一个结点 B.在第i个结点前插入一个新结点C.删除第i个结点 D.求表长4.在下列链表中不能从当前结点出发访问到其余各结点的是。

A.单链表 B.单循环链表 C.双向链表 D.双向循环链表5.设p结点是带表头结点的双循环链表中的结点,则(1)在p结点后插入s结点的语句序列中正确的是。

A.s->next=p->next;p->next->prior=s; p->next=s;s->next=p->next;B.p—>next=s;S—>next=p—>next; p—>next—>prior=s;s—>next=p;C.p->next=s;p—>next—>prior=s; s->next=p—>next;S—>next=p;D.p->next->prior=s;p->next=s; s->next=p->next;s->next=p;(2)在p结点之前插入s结点的语句序列中正确的是A.s->prior=p->prior;p->prior->next p->prior=s;s->next=p;B.p->prior=s;p->prior->next=s; s->prior=p->prior;s->next=p;C.p->prior->next=s;p->prior=s; s->prior=p->prior;s->next=p;D.p->prior=s;s->next=p; p->prior->next=s;s->prior=p->prior;填空题1、单链表中每个结点需要两个域,一个是数据域,另一个是2、表长为n的顺序表中,若在第j个数据元素(1≤i≤n+1)之前插入一个数据元素,需要向后移动个数据元素;删除第j个数据元素需要向前移动个数据元素;在等概率的情况下,插入一个数据元素平均需要移动个数据元素,删除一个数据元素平均需要移动个数据元素。

数据结构第二章习题

数据结构第二章习题

数据结构第二章习题第2章线性表一、单项选择题1.线性表就是具备n个_________的非常有限序列。

a.表元素b.字符c.数据元素d.数据项2.线性表是_________。

a.一个非常有限序列,可以为空b.一个非常有限序列,不可以为空c.一个无穷序列,可以为空d.一个无穷序列,不可以为空3.线性表使用链表存储时,其地址_________。

a.必须是连续的b.一定是不连续的c.部分地址必须是连续的d.连续与否均可以4.链表不具备的特点是_________。

a.可以随机出访任一结点b.填入删掉不须要移动元素c.不必事先估算存储空间d.所须要空间与其长度成正比5.设立线性表存有n个元素,以下操作方式中,_________在顺序单上同时实现比在链表上同时实现效率更高。

a.输出第i(1≤i≤n)个元素值b.互换第1个元素与第2个元素的值c.顺序输入这n个元素的值d.输出与给定值x相等的元素在线性表中的序号6.设立线性表中存有2n个元素,以下操作方式中,_________在单链单上同时实现Obrero在顺序单上同时实现效率更高。

a.删掉选定的元素b.在最后一个元素的后面插入一个新元素c.顺序输出前k个元素d.互换第i个元素和第2n-i-1个元素的值(i=0,1…,n-1)7.如果最常用的操作是取第i个结点及其前驱,则采用_________存储方式最节省时间。

a.单链表中b.双链表中c.单循环链表d.顺序表8.与单链表相比,双链表的优点之一是_________。

a.填入和删掉操作方式更直观b.可以展开随机出访c.可以省略字段指针或表尾指针d.出访前后相连结点更有效率9.率先垂范结点的单链表中l为觑的认定条件就是_________。

a.l==nullb.l->next==nullc.l->next==ld.l!=null10.在一个具备n个结点的有序单链表填入一个崭新结点并仍然维持有序的时间复杂度就是_________。

线性表习题

线性表习题

第二章习题:1.表长为n的顺序存储的线性表,当在任何位置上删除一个元素的概率相等时,删除一个元素所需移动元素的平均个数为()。

A.n B. n/2 C. (n-1)/2 D. (n+1)/22.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移()个元素。

A. n-iB. n-i+1C. n-i-1D. i3.设单链表中结点的结构为TYPEDEF STRUCT NODE { //链表结点定义ELEMTYPE DATA; //数据STRUCT NODE * NEXT; //结点后继指针} LISTNODE;已知指针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;4.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。

A. HL = p; p->next = HL;B. p->next = HL; HL = p;C. p->next = HL; p = HL;D. p->next = HL->next; HL->next = p;5.非空的循环单链表FIRST的尾结点(由P所指向)满足:()A.P->NEXT = NULL; B.P = NULL; C.P->NEXT = FIRST; D.P = FIRST; 1.以下那一个术语与数据的存储结构无关?( A )A.队列 B. 哈希表C. 线索树D. 双向链表2、一个算法应该是( B )。

A.程序 B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.3、数据结构中,与所使用的计算机无关的是数据的( C )A.存储结构 B.物理结构 C.逻辑结构 D.物理结构和存储结构4. 算法的计算量的大小称为计算的( B )。

数据结构 第二章:线性表

数据结构 第二章:线性表

第二章线性表:习题习题一、选择题1.L是线性表,已知Length(L)的值是5,经运算?Delete(L,2)后,length(L)的值是( c)。

A.5B.0C.4D.62.线性表中,只有一个直接前驱和一个直接后继的是( )。

A.首元素 B.尾元素C.中间的元素 D.所有的元素+3.带头结点的单链表为空的判定条件是( )。

A. head= =NULLB. head->next= =NULLC. head->next=headD. head!=NULL4.不带头结点的单链表head为空的判定条件是( )。

A. head=NULLB. head->next =NULLC.head->next=headD. head!=NULL5.非空的循环单链表head的尾结点P满足()。

A. p->next = =NULLB. p=NULLC. p->next==headD. p= =head6.线性表中各元素之间的关系是( c)关系。

A.层次B.网状C.有序 D.集合7.在循环链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 38.在单链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 39.在双链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 310.在一个单链表中,若删除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;11.指针P指向循环链表L的首元素的条件是()。

A.P= =L B. P->next= =L C. L->next=P D. P-> next= =NU LL12. 在一个单链表中,若在p所指结点之后插入s所指结点,则执行()。

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

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

线性表典型例题一、单项选择题[例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指向头结点。

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

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

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

一,单项选择题一个向量第一个元素的地址是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___。

第2章_线性表习题参考答案

第2章_线性表习题参考答案

习题二参考答案一、选择题1. 链式存储结构的最大优点是( D )。

A.便于随机存取B.存储密度高C.无需预分配空间D.便于进行插入和删除操作2. 假设在顺序表{a 0,a 1,……,a n -1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是( D )。

A. 106B. 107C.124D.1283. 在线性表中若经常要存取第i 个数据元素及其前趋,则宜采用( A )存储方式。

A.顺序表B. 带头结点的单链表C.不带头结点的单链表D. 循环单链表4. 在链表中若经常要删除表中最后一个结点或在最后一个结点之后插入一个新结点,则宜采用( C )存储方式。

A. 顺序表B. 用头指针标识的循环单链表C. 用尾指针标识的循环单链表D. 双向链表5. 在一个单链表中的p 和q 两个结点之间插入一个新结点,假设新结点为S,则修改链的java 语句序列是( D )。

A. s.setNext(p); q.setNext(s);B. p.setNext(s.getNext()); s.setNext(p);C. q.setNext(s.getNext()); s.setNext(p);D. p.setNext(s); s.setNext(q);6. 在一个含有n 个结点的有序单链表中插入一个新结点,使单链表仍然保持有序的算法的时间复杂度是( C )。

A. O(1)B. O(log 2n)C. O(n)D. O(n2)7. 要将一个顺序表{a 0,a 1,……,a n-1}中第i 个数据元素a i (0≤i ≤n-1)删除,需要移动( B )个数据元素。

A. iB. n-i-1C. n-iD. n-i+18. 在带头结点的双向循环链表中的p 结点之后插入一个新结点s ,其修改链的java 语句序列是( D )。

A. p.setNext(s); s.setPrior(p); p.getNext().setPrior(s);s.setNext(p.getPrior());B. p.setNext(s); p.getNext().setPrior(s); s.setPrior(p);s.setNext(p.getNext());C. s.setPrior(p); s.setNext(p.getNext()); p.setNext(s);p.getNext().setPrior(s);D. s.setNext(p.getNext()); s.setPrior(p); p.getNext().setPrior(s);p.setNext(s);9. 顺序表的存储密度是( B ),而单链表的存储密度是( A )。

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

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

1、线性表是具有n个 ______ 的有限序列。

A.数据项B.字符C.数据元素D.表元素正确答案:C2、线性表是 _______。

A.一个无限序列,可以为空B.一个有限序列不可以为空C.一个无限序列,不可以为空D.一个有限序列,可以为空正确答案:D3、关于线性表的正确说法是 _______。

A.每个元素都有一个前驱和一个后继元素B.除第一个元素和最后一个元素外,其余元素有且仅有一个前驱和一个后继元素C.表中元素的排序顺序必须是由小到大或由大到小D.线性表中至少有一个元素正确答案:B4、线性表采用链表存储时,其存放各个元素的单元地址是 _______。

A.连续与否均可以B.部分地址必须是连续的C.一定是不连续的D.必须是连续的5、链表不具备的特点是 _______。

A.插入删除不需要移动元素B.所需空间与其长度成正比C.不必事先估计存储空间D.可随机访问任一节点正确答案:D6、线性表的静态链表存储结构与顺序存储结构相比,优点是 _______。

A.所有的操作算法实现简单B.便于利用零散的存储器空间C.便于随机存取D.便于插入和删除正确答案:D7、线性表的顺序存储结构和链式存储结构相比,优点是 _______。

A.便于随机存取B.便于插入和删除C.所有的操作算法实现简单D.节省存储空间正确答案:A8、设线性表有n个元素,以下操作中,_______在顺序表上实现比在链表上实现效率高。

A.交换第1个元素第2个元素的值B.输出与给定值x相等的元素在线性表中的符号C.输入第i(1<=i<=n)个元素值D.顺序输出这n个元素的值正确答案:C9、对于一个线性表,既要求能够较快地进行插入和删除操作,又要求存储结构能够反映数据元素之间的逻辑关系,则应采用 _______ 存储结构。

A.顺序B.链式C.散列D.索引正确答案:B10、设线性表中有n个元素,以下操作,_______ 在单链表上实现要比在顺序表上实现效率高。

《数据结构》习题集:第2章_线性表

《数据结构》习题集:第2章_线性表

第2章线性表一、选择题1.表长为N 的顺序表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为(E ),删除一个元素需要移动的元素个数为(A )。

A. (N-1)/2B. NC. N+1D. N-1E. N/2F. (N+1)/2G. (N-2)/22.线性表是具有N 个(C )的有限序列。

A、表元素B、字符C、数据元素D、数据项E、信息3.“线性表的逻辑顺序和物理顺序总是一致的。

”这个结论是(B )。

A、正确的B、错误的C、不一定,与具体结构有关。

4.线性表采用链式存储结构时,要求内存中可用存储单元的地址(D )。

A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续或不连续都可以。

5.带头结点的单链表为空的判定条件是(B )。

A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL6.不带头结点的单链表head 为空的判定条件是(A )。

A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL7.非空的循环单链表head 的尾结点P 满足( C )。

A、P->NEXT=NULLB、p=NULLC、p->next==headD、p==head8.在一个具有n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是(B )。

A、O(1)B、O(n)C、O(n2)D、O(nlog2n)9.在一个单链表中,若删除P 所指结点的后继结点,则执行( A )。

A、p->next=p->next->nextB、p=p->next;p->next=p->next->nextC、p->next=p->next;D、p=p->next->next;10.在一个单链表中,若在P所指结点之后插入S所指结点,则执行(B )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3/32
线性表-复习要点(2)
• 4.线性表的应用(1)
– 在一维数组上的算法,如原地逆置、非零元 素压缩、成块元素移动等。 – 在一维数组上的递归算法,如求和平均值等。 – 在顺序表上的查找、插入、删除、合并、求 交等算法及性能分析。
– 在单链表上的迭代求解算法及性能,包括统 计链表结点个数、在链表中寻找与给定值 x 匹配的结点、在链表中寻找第i个结点、链表 逆转等。
/*在当前结点的后继链表中求最大值*/
int temp=Max(f->link);
/*如果当前结点值大,返回当前结点值*/
if (f->data > temp) return f->data; else return temp; //否则返回后继链表中的最大值 }
31/32
综合应用题
(3)求所有整数的平均值
29/32
综合应用题
例7 递归算法求: (1)求链表的结点个数 int List :: Num(ListNode * f) { if (f==0) return 0; return 1+Num(f->link); }
30/32
综合应用题
(2)求链表中的最大整数 int List :: Max(ListNode * f) { if (f->link==0) return f->data; //递归结束条件
27/32
class DLList{ public: DLList(){ head = tail = 0; } void R(){ reverse( head ); DLLNode * tmp; tmp = head; head = tail; tail = tmp; tail -> next = 0; } void addtotail( int & n); void print(); protected: void reverse( DLLNode * n ); DLLNode * head, * tail; };
13/32
复习要点(2)
• 4.队列的存储表示 – 队列的顺序存储及基本操作 – 队列的链式存储及基本操作 • 5.栈的应用
– 栈在递归过程中作为工作栈的使用,栈在表达式计 算中从中缀表示转后缀表示,栈在括号配对中的应 用,栈在数制转换中的应用
– 双栈共用一个数组的进栈、退栈、置空栈算法及栈 满、栈空条件,使用两个栈模拟一个队列时的进队 列和出队列算法。
否则, 若栈不空且栈顶位置上有其他方向未经探索,则 置当前位置的下一相邻方块为新的当前位置。
若栈不空且栈顶位置的四周都不通,则栈顶出栈, 标记不通;重新测试新的栈顶位置,直至找到一 个可通的相邻块作为新的当前位置。
} while (栈不空)
24/32

初始,1.1当前位置,可通, 进栈 1.2当前位置,可通,进栈
19/32
综合应用题
• 编号大的车开出后,编号比其小的车反序开出,即编号 大的车开出后,编号比其小的车只能由大到小依次开出 (中间可以插入编号更大的车,但此车后面编号比其小 的车也要遵守此规则)
• 出栈序列种数:
当n=4时 Cn=14
Cn C /(n 1)
n 2n
出栈序列:4321 3421,3241,3214 2431,2341,2314,2143,2134 1432,1342,1324,1243,1234
float List :: Avg (ListNode *f, int & n){ if (f->link==0) { n=1; return (float)(f->data); } else{ float sum=Avg(f->link,n)*n; n++; return(f->data + sum)/n; } }
4/32
线性表-复习要点(3)
• 4.线性表的应用(2)
– 带表头结点的单链表上的迭代算法,包括统计链表 结点个数、在链表中寻找与给定值x匹配的结点、在 链表中寻找第i个结点、两个有序链表的合并等。 – 单链表的递归算法,包括统计链表结点个数、在链 表中寻找与给定值 x匹配的结点、在链表中寻找第 i 个结点、求链表各结点值的和、平均值等。 – 循环链表的迭代算法、双向链表的迭代算法。
14/32
复习要点(3)
• 6.队列的应用 – 队列在分层处理中的使用,包括二叉树、树、图等 层次遍历过程中的使用
– 队列在对数据循环处理过程中的使用,例如约瑟夫 问题、归并排序 – 队列在调度算法中的使用
15/32
单项选择题
• 例1 为解决计算机主机与打印机之间速度不匹配的问 题,通常设置一个打印数据缓冲区。主机将要打印输 出的数据依次写入缓冲区,而打印机则依次从该缓冲 区中取出数据,该缓冲区的逻辑结构应该是( )。 A、栈 B、队列 C、树 D、图
【解答】C 。队列的特点是先进先出,出队顺序和入队顺序一致,即 与出栈顺序一致。如果用S表示进栈,用X表示出栈,则进栈/出栈序 列为下图。由图知,栈中最多时有3个元素,所以栈的容量最少为3。
17/32
单项选择题
例3 假设一个循环队列Q[maxSize]的队头指针为front,队 尾指针为 rear ,队列的最大容量为 maxSize ,除此之 外,该队列再没有其他数据成员,则该队列的队满条 件是__。 A . Q.front == Q.rear B. Q.front+Q.rear >= maxSize C. Q.front == (Q.rear+1) % maxSize D. Q.rear == (Q.front+1) % maxSize
32/32
【解答】 B。通常用于输入输出的缓冲区都是采用先入先出的队 列。
16/32
单项选择题
例2 设栈S和队列Q的初始状态都为空,元素 a,b,c,d,e,f,g依次进入栈S.如果每个元素出栈后立即 进入队列 Q,且 7 个元素出队的顺序为 b,d,c,f,e,a,g, 则栈S的容量至少是__; A.1 B.2 C.3 D.4
• 5.多项式的建立,两个多项式的相加,两个多 项式的相乘算法
5/32
单项选择题
6/32
单项选择题
7/32
单项选择题
8/32
单项选择题
9/32
单项选择题
10/32
单项选择题
例 11 若在长度为 n 的顺序表的表尾插入一个新元素的渐 进时间复杂度是( )。 A.O(n) B.O(1) C.O(n2) D.O(log2n)

× 西
1.3不通,2.2为当前位置,进 栈 2.3不通,3.2为当前位置,进 栈 3.3可通,进栈 3.4、4.3、3.2、2.3均不通 3.3出栈,3.2为新栈顶元素

3.3、4.2不通,3.1为当前位置, 进栈
25/32
Hale Waihona Puke 合应用题例 6 写出将单链表逆置的算法,即由单 链表 A 产生单链表 B ,使得 A 的最后一个 元素是B的第一个元素,依次类推。
单链表反转 (方法二:递归算法)
void DLList::reverse( DLLNode * n ){ DLLNode * t1 = n, * t2 = n ->next; if ( t2 ->next != 0 ) reverse( t2 ); t2 -> next = t1; }
28/32
单链表反转 (方法三:借助栈实现)
数据结构与算法
线性表 习题
本节重点
• 复习要点 • 单项选择题 • 综合应用题
2/32
线性表-复习要点(1)
• 1.线性表的概念
– 线性表的定义和特点 – 线性表的基本操作
• 2.线性表的存储表示
– 顺序表的定义及基本运算的实现 – 单链表的定义及基本运算的实现
• 3.线性表的特殊链接表示
– 循环链表的特殊遍历方式 – 双向链表的方向性
20/32
综合应用题
21/32
综合应用题
例4 请综述栈的基本性质。
22/32
综合应用题
例5 迷宫求解
思想: 使用栈记录走过的路径 若当前位置不通,标记该位置,退栈,寻找新路径 若当前位置通,进栈,寻找新路径
23/32
迷宫算法描述
设入口位置为当前位置; do { 若当前位置可通,则将当前位置进栈; 若该位置是出口位置,则成功; 否则置当前位置的东邻方块为新的当前位置;
26/32
struct ListNode{ EIEM element; ListNode *link; }; Typedef ListNode *ListPtr;
单链表反转 (方法一:非递归算法)
ListPtr invert(ListPtr head){ ListPtr middle,trail; middle=NULL; while(head){ trail=middle; middle=head; head=head->link; middle->link=trail; } return middle; }
【解答】C。既然不能附加任何其他数据成员,只能采用牺牲 一个队列元素的整除取余的方式区分队空和队满的条件,因此 选项C是合理的,选项 A是判断队列是否为空的条件,其他都 是干扰项。
18/32
综合应用题
例1 铁路进行列车调度时,常把站台设计成栈式结构的站台,如 右图所示。试问: (1)设有编号为1,2,3,4,5,6的六辆车,顺序开入栈式 结构的站台,则可能的出栈序列有多少种? (2)若进站的六辆列车顺序如上所述,那么是否能够得到 435612,325641,154623和135426的出站序列,如果不 能,说明为什么不能;如果能,说明如何得到(即写出“进 站”或“出站”的序列)。
相关文档
最新文档