线性表练习题答案
线性表练习题答案
一、判断题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) 一个无序序列,不能为空。
答:A12.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的()个元素。
(A) n/2 (B) (n+1)/2 (C) (n –1)/2 (D) n答:A13.线性表采用链式存储时,其地址( D ) 。
(A) 必须是连续的;(B) 部分地址必须是连续的;(C) 一定是不连续的;(D) 连续与否均可以。
答:D14.用链表表示线性表的优点是()。
(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同答:C15. 某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。
数据结构线性表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
数据结构(线性表)练习题与答案11、线性表是()。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空正确答案:A解析:线性表是具有n(n≥0)个数据元素的有限序列。
2、线性表的基本运算ListInsert(&L,i,e)表示在线性表L中第i 个位置上插入一个元素e,若L的长度为n,则i的合法取值是()。
A.1≤i≤nB.1≤i≤n+1C.0≤i≤n-1D. 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)并求其前驱元素B.在第i个元素之后插入一个新元素C.删除第i个元素D.将这n个元素递增排序正确答案:A解析:访问第i个元素(2≤i≤n)即L->data[i-1]和求其前驱元素L->data[i-2]的时间复杂度均为O(1)。
6、关于线性表的顺序存储结构和链式存储结构的描述中,正确的是()。
数据结构(线性表)习题与答案
一、单选题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. 线性表的定义线性表是一种常用的数据结构,它由一系列元素组成,并且每个元素具有前驱和后继关系。
线性表可以通过顺序存储或链式存储来实现。
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,直到遍历结束。
数据结构-线性表习题及解析
线性表典型例题一、单项选择题[例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、若长度为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、线性表是()。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空正确答案:A解析:线性表是具有n(n≥0)个数据元素的有限序列。
2、线性表的基本运算ListInsert(&L,i,e)表示在线性表L中第i 个位置上插入一个元素e,若L的长度为n,则i的合法取值是()。
A.1≤i≤nB.1≤i≤n+1C.0≤i≤n-1D. 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)并求其前驱元素B.在第i个元素之后插入一个新元素C.删除第i个元素D.将这n个元素递增排序正确答案:A解析:访问第i个元素(2≤i≤n)即L->data[i-1]和求其前驱元素L->data[i-2]的时间复杂度均为O(1)。
6、关于线性表的顺序存储结构和链式存储结构的描述中,正确的是()。
Ⅰ.线性表的顺序存储结构优于链式存储结构Ⅱ.顺序存储结构比链式存储结构的存储密度高Ⅲ.如需要频繁插入和删除元素,最好采用顺序存储结构Ⅳ.如需要频繁插入和删除元素,最好采用链式存储结构A.Ⅰ、Ⅱ、ⅢB.Ⅱ、ⅣC.Ⅱ、ⅢD.Ⅲ、Ⅳ正确答案:B解析:线性表的顺序存储结构和链式存储结构各有优缺点,不能简单比较好坏,所以Ⅰ错误。
线性表习题参考答案(精品)
习题二参考答案一、选择题1. 链式存储结构的最大优点是( D )。
A.便于随机存取B.存储密度高C.无需预分配空间D.便于进行插入和删除操作2. 假设在顺序表{a 0,a 1,……,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 (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+1 8. 在带头结点的双向循环链表中的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 )。
线性表答案
第二章线性表答案(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--数据结构与算法上机作业第二章线性表一、选择题1、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新的元素算法的时间复杂度为 C 。
A. O(log2n)B. O(1)C. O(n)D. O(n2)2、以下关于线性表的说法中,不正确的是 C 。
A. 线性表中的数据元素可以是数字、字符、结构等不同类型B. 线性表中包含的数据元素个数不是任意的C. 线性表中的每一个结点都有且只有一个直接前驱和直接后继D. 存在这样的线性表:表中各结点都没有直接前驱和直接后继3、在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为 B 。
A. O(1)B. O(n)C. O(n2)D. O(log2n)4、等概率情况下,在有n个结点的顺序表上做插入结点操作,需平均移动的结点数目为C 。
提示:插入的位置有n+1个,移动总数为:1+2+3+……+nA. nB. (n-1)/2C. n/2D. (n+1)/25、在一个长度为n的顺序存储的线性表中查找值为x的元素时,平均查找长度(及x同元素的平均比较次数,假定查找每个元素的概率都相等)为 C 。
A. nB. n/2C. (n+1)/2D. (n-1)/26、在顺序表中,只要知道 D ,就可以求出任一结点的存储地址。
A. 基地址B. 结点大小C. 向量大小D. 基地址和结点大小7、将两个各有n个元素的有序表归并为一个有序表,其最少的比较次数是A 。
A. nB. 2n-1C. 2nD. n-18、线性表采用链表存储时其存储地址要求 D 。
A. 必须是连续的B. 部分地址必须是连续的C. 必须是不连续的D. 连续的和不连续的都可以9、下面关于线性表的描述中,错误的是 B 。
A. 线性表采用顺序存储,必须占用一片连续的存储单元B. 线性表采用顺序存储,便于进行插入和删除操作C. 线性表采用链式存储,不必占用一片连续的存储单元D. 线性表采用链式存储,便于插入和删除操作10、向具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是 BA. O(1)B. O(n)C. O(n2)D. O(log2n)11、在一个带头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行的语句是 D 。
数据结构第二章线性表1答案
数据结构第二章线性表1答案第二部分线性表一、选择题1.关于顺序存储的叙述中,哪一条是不正确的( B )A.存储密度大B.逻辑上相邻的结点物理上不必邻接C.可以通过计算直接确定第i个结点的位置D.插入、删除操作不方便2.长度为n的单链表连接在长度为m的单链表后的算法的时间复杂度为( C )A O(n)B O(1)C O(m)D O(m+n)3.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( A )A 访问第i个结点(1<=i<=n)和求第i个结点的直接前趋(2<=i<=n)B 在第i个结点(1<=i<=n)后插入一个新结点C 删除第i个结点(1<=i<=n)D 将n个结点从小到大排序4.一个向量第一个元素的存储地址是100 ,每个元素的长度为2 ,则第5 个元素的地址是:( B )(A )110 ( B )108 (C )100 (D )1205.已知一个顺序存储的线性表,设每个结点需要占m个存储单元,若第一个结点的地址为da,则第i个结点的地址为:( A ) A)da+(i-1)*m B) da+i*m C) da-i*m D) da+(i+1)*m6.在具有n个结点的单链表中,实现(A )的操作,其算法的时间复杂度为O(n)。
A)遍历链表和求链表的第i个结点B)在地址为p的结点之后插入一个结点C)删除开始结点D)删除地址为p的结点的后继结点7.链表是一种采用(B )存储结构存储的线性表。
(A )顺序(B )链式( C )星式(D )网状8.线性表若采用链式存储结构时,要求内存中可用存储单元的地址:(D )(A )必须是连续的( B )部分地址必须是连续的(C )一定是不连续的( D )连续或不连续都可以9.线性表L在(B )情况下适用于使用链式结构实现。
(A)需经常修改L中的结点值(B)需不断对L进行删除插入(C)L中含有大量的结点(D)L中结点结构复杂10.在长度为n 的顺序表的第i (1≤i≤n+1) 个位置上插入一个元素,元素的移动次数为( A )A.n-i+1B.n-iC.iD.i-111.线性表是(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.节省存储空间正确答案:A 8、设线性表有n 个元素,以下操作中,_______在顺序表上实现比在链表上实现效率高。
A.交换第1 个元素第2 个元素的值B.输出与给定值x 相等的元素在线性表中的符号C.输入第i ( 1<=i<=n )个元素值D.顺序输出这n 个元素的值正确答案:C9、对于一个线性表,既要求能够较快地进行插入和删除操作,又要求存储结构能够反映数据元素之间的逻辑关系,则应采用_______ 存储结构。
A.顺序B.链式C.散列D.索引正确答案:B10、设线性表中有n 个元素,以下操作,_______ 在单链表上实现要比在顺序表上实现效率高。
线性表复习题答案
线性表复习题答案1. 线性表的基本概念是什么?线性表是由一组数据元素构成的集合,其中每个元素称为线性表的节点。
这些节点之间存在一种线性关系,即每个节点(除了第一个和最后一个)都有一个唯一的前驱和一个唯一的后继。
2. 线性表有哪些基本操作?线性表的基本操作包括:- 插入:在指定位置插入一个新元素。
- 删除:删除指定位置的元素。
- 查找:查找线性表中是否存在某个特定元素。
- 遍历:按顺序访问线性表中的每个元素。
3. 线性表的顺序存储结构有哪些特点?顺序存储结构是使用一组连续的存储单元依次存储线性表的数据元素。
其特点包括:- 物理存储上的连续性。
- 逻辑上的顺序性。
- 可以通过计算得到任意位置的元素的存储地址。
4. 线性表的链式存储结构有哪些特点?链式存储结构是使用一组不连续的存储单元存储线性表的数据元素,并通过指针将它们连接起来。
其特点包括:- 物理存储上的非连续性。
- 逻辑上的顺序性。
- 需要额外的空间来存储指针信息。
5. 线性表的顺序存储结构和链式存储结构各有什么优缺点?顺序存储结构的优点是访问速度快,缺点是插入和删除操作效率较低,且空间利用率不高。
链式存储结构的优点是插入和删除操作效率高,空间利用率高,缺点是访问速度较慢。
6. 线性表的动态分配存储方式有哪些?线性表的动态分配存储方式包括:- 顺序分配:预先分配一定数量的存储空间。
- 链式分配:每个元素单独分配存储空间,并通过指针连接。
7. 线性表的静态分配存储方式有哪些?线性表的静态分配存储方式包括:- 固定大小的数组:预先定义一个固定大小的数组来存储线性表的元素。
- 动态扩展的数组:在数组空间不足时,通过复制数组到更大的空间来扩展存储容量。
8. 如何判断线性表是否为空?线性表为空的条件是其长度为0,即没有任何元素。
9. 线性表的长度和容量有何区别?线性表的长度是指当前线性表中元素的数量,而容量是指线性表能够存储的最大元素数量。
对于顺序存储结构,长度不能超过容量;对于链式存储结构,长度可以动态变化,不受容量限制。
数据结构(线性表习题含答案)
数据结构第二章线性表习题含答案说明:顺序存储的线性表称为向量。
一,单项选择题一个向量第一个元素的地址是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. 线性表是________。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。
A.n-i B.n-i+l C.n-i-1 D.i3. 线性表采用链式存储时,其地址________。
A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。
A.n/2 B.n C.(n+1)/2 D.(n-1)/25. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。
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.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 )之前插入一个新元素时,需向后移动______个元素。
完整word版数据结构练习题线性表习题及答案
第二章线性表一.名词解释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、线性表是具有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一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(×)(1)线性表的链式存储结构优于顺序存储。
(×)(2)链表的每个结点都恰好包含一个指针域。
(√)(3)在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
(×)(4)顺序存储方式的优点是存储密度大,插入、删除效率高。
(×)(5)线性链表的删除算法简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
(×)(6)顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
(√)(7)线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。
(√)(8)线性表采用顺序存储,必须占用一片连续的存储单元。
(×)(9)顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
(ㄨ)(10)插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用。
二.填空题(1)顺序表中逻辑上相邻的元素在物理位置上必须相连。
(2)线性表中结点的集合是有限的,结点间的关系是一对一关系。
(3)顺序表相对于链表的优点是:节省存储和随机存取。
(4)链表相对于顺序表的优点是:插入、删除方便。
(5)采用顺序存储结构的线性表叫顺序表。
(6)顺序表中访问任意一个结点的时间复杂度均为O(1) 。
(7)在单链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前趋结点的地址,其查找的时间复杂度为O(n) 。
(10)在一个长度为n的顺序表中删除第i个元素,要移动n-i 个元素。
(11)在一个长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移n- i +1 个元素。
(12)当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快速度存取线性表中的元素时,应采用顺序存储结构。
(13)在线性表的链式存储中,元素之间的逻辑关系是通过指针决定的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);
}。