线性表练习题答案

合集下载

第二章线性表习题及答案

第二章线性表习题及答案

第二章线性表习题及答案‎

一、基础知识题‎

2.1 试描述头指‎针、头结点、开始结点的‎区别、并说明头指‎针和头结点‎的作用。

答:始结点是指‎链表中的第‎一个结点,也就是没有‎直接前趋的‎那个结点。

链表的头指‎针是一指向‎链表开始结‎点的指针(没有头结点‎时),单链表由头‎指针唯一确‎定,因此单链表‎可以用头指‎针的名字来‎命名。

头结点是我‎们人为地在‎链表的开始‎结点之前附‎加的一个结‎点。有了头结点‎之后,头指针指向‎头结点,不论链表否‎为空,头指针总是‎非空。而且头指针‎的设置使得‎对链表的第‎一个位置上‎的操作与在‎表其他位置‎上的操作一‎致(都是在某一‎结点之后)。

2.2 何时选用顺‎序表、何时选用链‎表作为线性‎表的存储结‎构为宜?

答:在实际应用‎中,应根据具体‎问题的要求‎和性质来选‎择顺序表或‎链表作为线‎性表的存储‎结构,通常有以下‎几方面的考‎虑:

1.基于空间的‎考虑。当要求存储‎的线性表长‎度变化不大‎,易于事先确‎定其大小时‎,为了节约存‎储空间,宜采用顺序‎表;反之,当线性表长‎度变化大,难以估计其‎存储规模时‎,采用动态链‎表作为存储‎结构为好。

2.基于时间的‎考虑。若线性表的‎操作主要是‎进行查找,很少做插入‎和删除操作‎时,采用顺序表‎做存储结构‎为宜;反之,若需要对线‎性表进行频‎繁地插入或‎删除等的操‎作时,宜采用链表‎做存储结构‎。并且,若链表的插‎入和删除主‎要发生在表‎的首尾两端‎,则采用尾指‎针表示的单‎循环链表为‎宜。

2.3 在顺序表中‎插入和删除‎一个结点需‎平均移动多‎少个结点?具体的移动‎次数取决于‎哪两个因素‎?

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

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

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

A.数据项

B.字符

C.数据元素

D.表元素

正确答案:C

2、线性表是 _______。

A.一个无限序列,可以为空

B.一个有限序列不可以为空

C.一个无限序列,不可以为空

D.一个有限序列,可以为空

正确答案:D

3、关于线性表的正确说法是 _______。

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

B.除第一个元素和最后一个元素外,其余元素有且仅有一个前驱和一个后继元素

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

D.线性表中至少有一个元素

正确答案:B

4、线性表采用链表存储时,其存放各个元素的单元地址是 _______。

A.连续与否均可以

B.部分地址必须是连续的

C.一定是不连续的

D.必须是连续的

5、链表不具备的特点是 _______。

A.插入删除不需要移动元素

B.所需空间与其长度成正比

C.不必事先估计存储空间

D.可随机访问任一节点

正确答案:D

6、线性表的静态链表存储结构与顺序存储结构相比,优点是 _______。

A.所有的操作算法实现简单

B.便于利用零散的存储器空间

C.便于随机存取

D.便于插入和删除

正确答案:D

7、线性表的顺序存储结构和链式存储结构相比,优点是 _______。

A.便于随机存取

B.便于插入和删除

C.所有的操作算法实现简单

D.节省存储空间

正确答案:A

8、设线性表有n个元素,以下操作中,_______在顺序表上实现比在链表上实现效率高。

A.交换第1个元素第2个元素的值

B.输出与给定值x相等的元素在线性表中的符号

C.输入第i(1<=i<=n)个元素值

线性表练习题答案

线性表练习题答案

一、判断题

1.线性表的逻辑顺序与存储顺序总是一致的。(FALSE)

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

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

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

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

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

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

9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(TRUE)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(FALSE)

二、单选题、(请从下列A,B,C,D选项中选择一项)

11.线性表是( ) 。

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

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

答:A

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

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

(A) n/2 (B) (n+1)/2 (C) (n –1)/2 (D) n

答:A

13.线性表采用链式存储时,其地址( D ) 。

(A) 必须是连续的;(B) 部分地址必须是连续的;

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

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

一、单选题

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

A.O(n*n)

B.O(log2n)

C.O(1)

D.O(n)

正确答案:D

2、在长度为n的顺序表中的第i( 1 =< i <= n+1 )个位置上插入一个元素,需要移动的元素个数为()。

A.i

B.n-i+1

C.n-i-1

D.n-i

正确答案:B

3、链表不具有的特点是()。

A.插入、删除不需要移动元素

B.不必事先估计存储空间

C.可随机访问任一元素

D.所需存储空间与线性表程度成正比

正确答案:C

4、在一单链表中,删除指针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);

正确答案:D

5、假设删除长度为n的顺序表中的每个元素的概率相同,则删除一个元素平均要移动的元素个数是()。

A.n

B.n/2

C.(n-1)/2

D.(n+1)/2

正确答案:C

6、设某顺序表中第一个元素的地址是Base,每个结点占m个单元,则第i个结点的地址为()。

A.Base+(i-1)×m

B.Base+(i+1)×m

C.Base-i×m

D.Base+i×m

正确答案:A

7、长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i 的合法值应该是()。

《数据结构》吕云翔编著第2章线性表习题解答

《数据结构》吕云翔编著第2章线性表习题解答

数据结构第二章习题解答

一、单选题

1.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移(B)个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

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

A、n-i

B、n-i+1

C、n-i-1

D、i

3. 在一个长度为n的线性表中顺序查找值为x的元素时,在等概率情况下,查找成功时的平均查找长度(即需要比较的元素个数)为( C )。

A. n

B. n/2

C. (n+1)/2

D. (n-1)/2

4.在一个长度为n的线性表中,删除值为x的元素时需要比较元素和移动元素的总次数为(C )。

A. (n+1)/2

B. n/2

C. n

D. n+1

5. 在一个顺序表的表尾插入一个元素的时间复杂度为(B )。

A. O(n)

B. O(1)

C. O(n*n)

D. O(log2n)

6.若一个结点的引用为p,它的前驱结点的引用为q,则删除p的后继结点的操作为(B )。

A. p=p.next.next

B. p.next=p.next.next

C. q.next=p.next

D. q.next=q.next.next

8. 假定一个多项式中x的最高次幂为n,则在保存所有系数项的线性表表示中,其线性表长度为(A )。

A. n+1

B. n

C. n-1

D. n+2

二、填空题

1.对于当前长度为n的线性表,共包含有________多个插入元素的位置,共包含有________多个删除元素的位置。(答案n+1 n)

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

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

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

1、线性表是()。

A.一个有限序列,可以为空

B.一个有限序列,不可以为空

C.一个无限序列,可以为空

D.一个无限序列,不可以为空

正确答案:A

解析:线性表是具有n(n≥0)个数据元素的有限序列。

2、线性表的基本运算ListInsert(&L,i,e)表示在线性表L中第i 个位置上插入一个元素e,若L的长度为n,则i的合法取值是()。

A.1≤i≤n

B.1≤i≤n+1

C.0≤i≤n-1

D. 0≤i≤n

正确答案:B

解析:线性表的基本运算ListInsert(&L,i,e)中,位置i是指逻辑序号,可以在L的位置1到位置n+1插入元素。

3、顺序表具有随机存取特性,指的是()。

A.查找值为x的元素与顺序表中元素个数n无关

B.查找值为x的元素与顺序表中元素个数n有关

C.查找序号为i的元素与顺序表中元素个数n无关

D.查找序号为i的元素与顺序表中元素个数n有关

正确答案:C

解析:一种存储结构具有随机存取特性指的是,对于给定的序号i,在O(1)时间内找到对应元素值。

4、在顺序表中删除一个元素所需要的时间()。

A.与删除元素的位置及顺序表的长度都有关

B.只与删除元素的位置有关

C.与删除任何其他元素所需要的时间相等

D.只与顺序表的长度有关

正确答案:A

解析:当从顺序表中删除元素时,为了保持顺序表的逻辑特性,需要移动元素以覆盖该删除的元素。因此在顺序表中删除一个元素与该元素的位置及顺序表的长度都有关。

5、在n(n>1)个运算的顺序表中,算法时间复杂度为O(1)的运算是()。

A.访问第i个元素(2≤i≤n)并求其前驱元素

线性表练习题答案

线性表练习题答案

第2章线性表练习题答案

一、填空

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

2. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。

3. 在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。

4. 在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

5.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。

二、判断正误

(×)1. 链表的每个结点中都恰好包含一个指针。

答:错误。链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中的结点可以含有两个指针

域,分别存放指向其直接前趋和直接后继结点的指针。

(×)2. 链表的物理存储结构具有同链表一样的顺序。错,链表的存储结构特点是无序,而链表的示意图有序。(×)3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。错,链表的结点不会移动,只是指针内容改变。

(×)4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。

(×)5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

错,正好说反了。顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”

(×)6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

数据结构线性表习题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)______ 。

线性表练习题(答案)

线性表练习题(答案)

线性表练习题(答案)

第2章线性表

一选择题

下列程序段的时间复杂度为( C )。

for( int i=1;i<=n;i++)

for( int j=1;j<= m; j++)

A[i][j] = i*j ;

A. O(m2)

B. O(n2)

C. O(m*n)

D. (m+n)

下面关于线性表的叙述中,错误的是哪一个?( B )

A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。线性表是具有n个( C )的有限序列(n>0)。A.表元素 B.字符 C.数据元素D.数据项

若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表

某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。

A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。

A. 单链表

B.单循环链表

C. 带尾指针的单循环链表

D.带头结点的双循环链表

若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( D )存储方式最节省运算时间。

A.单链表 B.双链表 C.单循环链表D.带头结点的双循环链表

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

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

习题二参考答案

一、选择题

1.链式存储结构的最大优点是( D )。

A.便于随机存取

B.存储密度高

C.无需预分配空间

D.便于进行插入和删除操作

2.假设在顺序表{a0,a1,……,a n-1}中,每一个数据元素所占的存储单元的数目为4,且第0

个数据元素的存储地址为100,则第7个数据元素的存储地址是( D )。

A.106

B. 107

C.124

D.128

3.在线性表中若经常要存取第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(log2n)

C. O(n)

D. O(n2)

7.要将一个顺序表{a0,a1,……,a n-1}中第i个数据元素a i(0≤i≤n-1)删除,需要移动( B )

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

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

第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.带头结点的双循环链表

线性表编程练习题

线性表编程练习题

1、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。输入: 1 2 5 6 8

3 4 7 9 10

输出: 10 9 8 7 6 5 4 3 2 1

测试数据

输入:7 9 10 11

8 12 13 14

输出:14 13 12 11 10 9 8 7

链表翻转

2.带头结点且头指针为ha和hb的两线性表A和B 分别表示两个集合。两表中的元素皆为递增有序。请写一算法求A和B的并集AUB。要求该并集中的元素仍保持递增有序。且要利用A和B的原有结点空间。

输入: 1 2 5 6 8

2 5 7 9

输出: 1 2 5 6 7 8 9

测试数据

输入:7 9 10 11

8 9 10 11

输出:7 8 9 10 11

3. 知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。

4. 顺序结构线性表LA与LB的结点关键字为整数。LA与LB的元素按非递减有序,线性表空间足够大。试用类PASCAL语言给出一种高效算法,将LB中元素合到LA中,使新的LA的元素仍保持非递减有序。高效指最大限度的避免移动元素。

5. 已知不带头结点的线性链表list,链表中结点构造为(data、link),其中data为数据域,link为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新链接。要求链接过程中不得使用除该链表以外的任何链结点空间。

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

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

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

第⼆章线性表

⼀、选择题

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-i

B. n-i+1

C. n-i-1

D. i

5、⾮空的循环单链表head的尾结点p满⾜()。

A. p->next==head

B. p->next==NULL

C. p==NULL

D. p==head

6、链表不具有的特点是()。

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;

数据结构-线性表-习题

数据结构-线性表-习题

第二章线性表一、选择题

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 ;

数据结构 第2章线性表 习题 答案

数据结构 第2章线性表  习题  答案

第2章线性表参考答案

一、填空

1. 【严题集

2.2①】在顺序表中插入或删除一个元素,需要平均移动表

中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

2. 线性表中结点的集合是有限的,结点间的关系是一对一的。

3. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,

需向后移动n-i+1 个元素。

4. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个

元素。

5. 在顺序表中访问任意一结点的时间复杂度均为 O(1),因此,顺序表

也称为随机存取的数据结构。

6. 【严题集2.2①】顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

7. 【严题集2.2①】在单链表中,除了首元结点外,任一结点的存储位

置由其直接前驱结点的链域的值指示。

8.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。

二、判断正误(在正确的说法后面打勾,反之打叉)

( × )1. 链表的每个结点中都恰好包含一个指针。

答:错误。链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中

的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。

( × )2. 链表的物理存储结构具有同链表一样的顺序。错,链表的存储结构特点是无序,而链表的示意图有序。

( × )3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。错,链表的结点不会移动,只是指

针内容改变。

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

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

精品文档

第二章线性表

一.名词解释

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)

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

一、判断题

1.线性表的逻辑顺序与存储顺序总是一致的。(FALSE)

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

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

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

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

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

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

9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(TRUE)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(FALSE)

二、单选题、(请从下列A,B,C,D选项中选择一项)

11.线性表是( ) 。

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

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

答:A

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

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

(A) n/2 (B) (n+1)/2 (C) (n –1)/2 (D) n

答:A

13.线性表采用链式存储时,其地址( D ) 。

(A) 必须是连续的;(B) 部分地址必须是连续的;

(C) 一定是不连续的;(D) 连续与否均可以。

答:D

14.用链表表示线性表的优点是()。

(A)便于随机存取

(B)花费的存储空间较顺序存储少

(C)便于插入和删除

(D)数据元素的物理顺序与逻辑顺序相同

答:C

15. 某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。

(A)单链表

(B)双链表

(C)单循环链表

(D)带头结点的双循环链表

答:D

16. 循环链表的主要优点是( ) 。

(A)不再需要头指针了

(B)已知某个结点的位置后,能够容易找到他的直接前趋

(C)在进行插入、删除运算时,能更好的保证链表不断开

(D)从表中的任意结点出发都能扫描到整个链表

答:D

18. 单链表中,增加一个头结点的目的是为了()。

(A) 使单链表至少有一个结点(B)标识表结点中首结点的位置

(C)方便运算的实现(D) 说明单链表是线性表的链式存储

答:C

19. 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

(A) 单链表(B) 仅有头指针的单循环链表

(C) 双链表(D) 仅有尾指针的单循环链表

答:D

20. 若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省运算时间(B )。

(A) 单链表(B) 顺序表

(C) 双链表(D) 单循环链表

答:B

21. 一个向量(一种顺序表)第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是_______。

A. 110

B. 108

C. 100

D. 120

答:B

[第5个元素的地址=100+2*(5-1)=108]

22. 不带头结点的单链表head为空的判定条件是______。

A. head = = NULL;

B. head->next = = NULL;

C. head->next = = head;

D. head! = NULL;

答:A

23. 带头结点的单链表head为空的判定条件是______。

A. head = = NULL;

B. head->next = = NULL;

C. head->next = = head;

D. head! = NULL;

答:B

24. 在循环双链表的p所指结点之后插入s所指结点的操作是_____。

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;

int count (head, x)

{

/*本题中head 为链头指针,不含头结点*/ node *p;

int n=0;

p=head;

while (p!=NULL)

{

if (p->data= =x) n++;

p=p->next;

}

return(n);

}

相关文档
最新文档