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

合集下载

数据结构第2章作业 线性表(答案)

数据结构第2章作业 线性表(答案)

第2章线性表班级学号__________-姓名一、判断正误(×)1. 链表的每个结点中都恰好包含一个指针。

链表中的结点可含多个指针域,分别存放多个指针。

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

(×)2. 链表的物理存储结构具有同链表一样的顺序。

链表的存储结构特点是无序,而链表的示意图有序。

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

链表的结点不会移动,只是指针内容改变。

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

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

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

正好说反了。

顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”(×)6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

前一半正确,但后一半说法错误,那是链式存储的优点。

顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。

(×)7. 线性表在物理存储空间中也一定是连续的。

线性表有两种存储方式,顺序存储和链式存储。

后者不要求连续存放。

(×)8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。

线性表有两种存储方式,在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。

(×)9. 顺序存储方式只能用于存储线性结构。

顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。

(后一节介绍)(×)10. 线性表的逻辑顺序与存储顺序总是一致的。

理由同7。

链式存储就无需一致。

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

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

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

数据结构线性表答案 (1)

数据结构线性表答案 (1)

第一章线性表2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

解:头指针是指向链表中第一个结点的指针。

首元结点是指链表中存储第一个数据元素的结点。

头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用主要是为了方便对链表的操作。

它可以对空表、非空表以及首元结点的操作进行统一处理。

2.2 填空题。

解:(1) 在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与元素在表中的位置有关。

(2) 顺序表中逻辑上相邻的元素的物理位置必定紧邻。

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

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

(4) 在单链表中设置头结点的作用是插入和删除首元结点时不用进行特殊处理。

2.3 在什么情况下用顺序表比链表好?解:当线性表的数据元素在物理位置上是连续存储的时候,用顺序表比用链表好,其特点是可以进行随机存取。

2.4 对以下单链表分别执行下列各程序段,并画出结果示意图。

解:2.5 画出执行下列各行语句后各指针及链表的示意图。

L=(LinkList)malloc(sizeof(LNode)); P=L; for(i=1;i<=4;i++){P->next=(LinkList)malloc(sizeof(LNode)); P=P->next; P->data=i*2-1;}P->next=NULL;for(i=4;i>=1;i--) Ins_LinkList(L,i+1,i*2); for(i=1;i<=3;i++) Del_LinkList(L,i);解:2.6 已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

a. 在P结点后插入S结点的语句序列是__________________。

计算机软件基础(线性数据结构_ 线性表)期末单元测试与答案

计算机软件基础(线性数据结构_ 线性表)期末单元测试与答案

一、单选题1、若线性表最常用的操作是存取第i个元素及其前趋和后继元素的值,为节省时间应采用的存储方式是()。

A.单链表B.双向链表C.单循环链表D.顺序表正确答案:D2、对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()。

A. 单链表B. 仅有头指针的单循环链表C. 仅有尾指针的单循环链表D. 双循环链表正确答案:C3、数据的存储结构包括顺序、链接、散列和()4种基本类型。

A.索引B.数组C.集合D.向量正确答案:A4、在一个长度为n的顺序存储结构的线性表中,向第i个元素(1≤i≤n+1)位置插入一个元素时,需要从前向后依次移动()个元素。

A. n-iB.n-i+lC.n-i-lD.i正确答案:B5、在一个长度为n的顺序存储结构的线性表中,删除第i个元素(1≤i≤n)时,需要从后向前依次移动()个元素。

A. n-iB.n-i+lC.n-i-lD.i正确答案:A6、下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

D.线性表采用链接存储,便于插入和删除操作。

正确答案:B7、线性表是具有n 个()的有限序列(n>0)。

A.表元素B.字符C.数据元素D.数据项E.信息项正确答案:C8、静态链表中指针表示的是().A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址正确答案:C9、下面的叙述不正确的是()A.线性表在链式存储时,查找第i 个元素的时间同i 的值成正比B. 线性表在链式存储时,查找第i 个元素的时间同i 的值无关C. 线性表在顺序存储时,查找第i 个元素的时间同i 的值无关正确答案:B10、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1)正确答案:C二、判断题1、()线性表的特点是每个元素都有一个前驱结点和一个后继结点。

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

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

数据结构(线性表)习题与答案数据结构(线性表)习题与答案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,直到遍历结束。

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

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

数据结构--线性表习题及答案第⼆章线性表⼀、选择题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个元素,需要向前移动()个元素。

数据结构 第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. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

错,链表的结点不会移动,只是指针内容改变。

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

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

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

错,正好说反了。

顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”( × )6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

《数据结构》关于线性表的练习题(PPT内含答案)

《数据结构》关于线性表的练习题(PPT内含答案)

C.插入删除时不需移动元素
D.所需空间与线性表成正比
7.在( B )的运算中,使用顺序表比链表好。
A.插入
B.根据序号查找
C.删除
D.根据元素查找
8.在单链表指针为p的结点之后插入指针为s的结点,正确 的操作是( B )。
A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
9.若对一个线性表经常进行查找操作,而很少进行插入和 删除操作时,则采用 顺序 存储结构为宜,相反,若经 常进行的是插入和删除操作时,则采用 链式 存储结构 为宜。
习题2
三、判断题 1.线性表的链式存储结构优于顺序存储结构。( F ) 2.链表的每个结点都恰好包含一个指针域。 ( F ) 3.在线性表的链式存储结构中,逻辑上相邻的两个元素在
B.循环链表和单向链表
C.循环链表
15.对具有n个结点的线性表进行插入或删除操作, 所需的算法时间复杂度为( D )。
A.O(n2) C.O(log2n)
B.O(nlog2n) D.O(n)
习题2
二、填空题
1.线性表L=(a1,a2,…,an)采用顺序存储,假定删除 表中任意元素的概率相同,则删除一个元素平均 需要移动元素的个数是 (n-1)/2 。
习题2
5.链表相对于顺序表的优点是插入、删除方便;缺点是存 储密度 小 。
6.链式存储的特点是利用 指针 来表示数据元素之间的 逻辑关系。
7.在双向链表中,每个结点有两个指针域,一个指向其 前驱结点,另一个指向其 后继 结点。
8.在一个双链表中,设指针p是指向该表中待删除的结点, 则需要执行的操作为: p->pre->next=p->next 。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

A) s->next=p->next; p->next=s; B) p->next=s->next; s->next=P;C) q->next=s; s->next=p; D) p->next=s; s->next=q;在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行__①b___。

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;在一个单链表中,若删除p所指结点的后续结点,则执行__①_a__。

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;10,假设双链表结点的类型如下:typedef struct linknode{int data,/*数据域*/struct linknode * llink; /*llink是指向前驱结点的指针域*/struct linknode * rlink; /*rlink是指向后续结点的指针域*/} bnode要把一个q所指新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,其算法是__①_c__。

q->rlink=p; q->llink=p->llink; p->llink=q; p->llink->rlink=q;p->llink=q; q->llink=p; p->llink->rlink=q; q->llink=p->llink;q->llink=p->llink; q->rlink=p; p->llink->rlink=q; p->llink=q;以上都不对,12,从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较__①_d__个结点。

A) n B) n/2 C) (n-1)/2 D) (n+1)/2一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是__①_b__。

A) O(1) B) O(n) C) O(n2) D) O(nlog2n)给定有n个元素的向量,建立一个有序单链表的时间频度是__①_d__。

A) n B) n/2 C) (n-1)/2 D) (n+1)/2二.填空题(将正确的答案填在相应的空中)单链表是_线性表____的链接存储表示。

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

可以使用_二叉链表____表示树形结构。

在双链表中,每个结点有两个指针域,一个指向__直接前驱___,另一个指向_直接后继____。

在一个单链表中的p所指结点之前插入一个s所指结点时,可执行哪些操作_____。

在一个单链表中删除p所指结点时,应执行的操作_____。

带有一个头结点的单链表head为空的条件是head->next==NULL_____。

在一个单链表中p所指结点之后插入一个s所指结点时,应执行s->next=_p->next______和p->next=_s________的操作。

9,非空的循环链表head的尾结点(由p所指向),满足条件__p->next=head___。

10,对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是__o(1)___;在给定值为x的结点后插入一个新结点的时间复杂度是_o(n)____。

栈和队列个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是__c___。

A) edcba B) dceba C) dceab D) abcde若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi 为__c___。

A) i B) n-i C) n-i+1 D) 不确定判定一个栈ST(最多元素为m0)为空的条件是_b____。

A) ST->top!=0 B) ST->top==0 C) ST->top!=m0 D) ST->top==m0判定一个栈ST(最多元素为m0)为栈满的条件是_d____。

A) ST->top!=0 B) ST->top==0 C) ST->top!=m0 D) ST->top==m0栈的特点是__①b___,队列的特点是__②_a__。

A) 先进先出B) 先进后出在以下的叙述中,正确的是__①_c__。

A) 线性表的线性存储结构优于链表存储结构B) 栈的操作方式是先进先出C) 二维数组是其数据元素为线性表的线性表D) 队列的操作方式是先进后出一个队列的入队序列是1,2,3,4,则队列的输出序列是__b___。

A) 4,3,2,1 B) 1,2,3,4 C) 1,4,3,2 D) 3,2,4,1判定一个循环队列QU(最多元素为m0)为空的条件是_a____。

A) QU->front==QU->rear B) QU->front!=QU->rearC) QU->front==(QU->rear+1)%m0 D) QU->front!=(QU->rear+1)%m0判定一个循环队列QU(最多元素为m0)为满队列的条件是_d____。

A) QU->front==QU->rear B) QU->front!=QU->rearC) QU->front==(QU->rear+1)%m0 D) QU->front!=(QU->rear+1)%m0循环队列用数组A[m]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是__a___。

A) (rear-front+m)%m B) rear-front+1 C) rear-front-1 D) rear-front栈和队列的共同点是__c___。

A) 都是先进后出B) 都是先进先出C) 只允许在端点处插入和删除D) 没有共同点向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行_c____。

A) HS->next=s; B) s->next=HS->next; HS->next=s;C) s->next=HS; HS==s; D) s->next=HS; HS=HS->next;从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行__d___。

A) x=HS; HS=HS->next; B) x=HS->data;C) HS=HS->next; x=HS->data; D) x=HS->data; HS=HS->next;在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算时__b___。

A) f->next=s; f=s; B) r->next=s; r=s;C) s->next=r; r=s; D) s->next=f; f=s;17,在一个链队中,假设f和r分别为队首和队尾指针,则删除一个结点的运算时__c___。

A) r=f->next; B) r=r->next; C) f=f->next; D) f=r->next;二,填空题(将正确的答案填在相应的空中)向量、栈和队列都是_线性____结构,可以在向量的__端点___位置插入和删除元素;对于栈只能在_栈顶____插入和删除元素;对于队列只能在_队尾____插入元素和__队头___删除元素。

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

向栈中压入元素的操作是_置入数据,栈顶指针加1____。

对栈进行退栈时的操作是_栈顶指针减1,取出数据____。

在一个循环队列中,队尾指针指向队尾元素的_直接后继____。

从循环队列中删除一个元素时,其操作是__取出队头指针所指数据元素,队头指针加1___。

相关文档
最新文档