顺序表

1-8

对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。

  • T
  • F

1-10

对于顺序存储的长度为N的线性表,删除第一个元素和插入最后一个元素的时间复杂度分别对应为O(1)和O(N)。

  • T
  • F

1-9

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

  • T
  • F

1-11

线性表L如果需要频繁地进行不同下标元素的插入、删除操作,此时选择顺序存储结构更好。

  • T
  • F

2-10

在N个结点的顺序表中,算法的时间复杂度为O(1)的操作是:

  • A.访问第i个结点(1≤i≤N)和求第i个结点的直接前驱(2≤i≤N)
  • B.在第i个结点后插入一个新结点(1≤i≤N)
  • C.删除第i个结点(1≤i≤N)
  • D.将N个结点从小到大排序

2-14

顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )。

  • 108

第5个的位序是4,第一个位序为0,A=100+2*4=108
(第5个元素的头,也是第4个元素的尾)

2-15

已知二维数组 A 按行优先方式存储,每个元素占用 1 个存储单元。若元素 A[0][0] 的存储地址是 100,A[3][3] 的存储地址是 220,则元素 A[5][5] 的存储地址是:

  • 300

设每行有x个元素,A[0][0]=100,A[3][0]=100+3 * 1 * x,A[3][3]=A[3][0]+3 * 1=220,所以解得x=39,A[5][5]=100+5*39+5=300

单链表、循环链表、双向链表

1-13

在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。

  • T
  • F

1-14

将N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN)。

  • T
  • F

1-15

若用链表来表示一个线性表,则表中元素的地址一定是连续的。

  • T
  • F

1-16

链表 - 存储结构

链表中逻辑上相邻的元素,其物理位置也一定相邻

  • T
  • F

1-17

链表 - 存储结构

链表是一种随机存取的存储结构。

  • T
  • F

2-16

线性表若采用链式存储结构时,要求内存中可用存储单元的地址
(1分)

  • B.连续或不连续都可以

2-17

在具有N个结点的单链表中,实现下列哪个操作,其算法的时间复杂度是O(N)?
(2分)

  • A.在地址为p的结点之后插入一个结点
  • B.删除开始结点
  • C.遍历链表和求链表的第i个结点
  • D.删除地址为p的结点的后继结点

2-18

将线性表La和Lb头尾连接,要求时间复杂度为O(1),且占用辅助空间尽量小。应该使用哪种结构?
(2分)

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

2-19

线性表L在什么情况下适用于使用链式结构实现?
(1分)

  • A.需不断对L进行删除插入
  • B.需经常修改L中的结点值
  • C.L中含有大量的结点
  • D.L中结点结构复杂

2-20

对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为
(2分)

  • A.O(1)
  • B.O(N/2)
  • C.O(N)
  • D.O(N2)

2-21

链表不具有的特点是:
(1分)

  • A.插入、删除不需要移动元素
  • B.方便随机访问任一元素
  • C.不必事先估计存储空间
  • D.所需空间与线性长度成正比

2-22

设h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是:
(2分)

  • A.h=t; t->next=h->next;
  • B.t->next=h->next; h=t;
  • C.h=t; t->next=h;
  • D.t->next=h; h=t;

2-23

在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行
(2分)

  • A.s->next=p; p->next=s;
  • B.s->next=p->next; p=s;
  • C.s->next=p->next; p->next=s;
  • D.p->next=s; s->next=p;

2-24

带头结点的单链表h为空的判定条件是:
(2分)

  • A.h == NULL;
  • B.h->next == NULL;
  • C.h->next == h;
  • D.h != NULL;

2-25

对于一非空的循环单链表,h和p分别指向链表的头、尾结点,则有:
(2分)

  • A.p->next == h
  • B.p->next == NULL
  • C.p == NULL
  • D.p == h

2-26

在双向循环链表结点p之后插入s的语句是:
(3分)

  • A.p->next=s; s->prior=p; p->next->prior=s ; s->next=p->next;
  • B.p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
  • C.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
  • D.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;

2-27

在双向链表存储结构中,删除p所指的结点,相应语句为:
(3分)

  • A.p->prior=p->prior->prior; p->prior->next=p;
  • B.p->next->prior=p; p->next=p->next->next;
  • C.p->prior->next=p->next; p->next->prior=p->prior;
  • D.p->next=p->prior->prior; p->prior=p->next->next;

2-29

To insert s after p in a doubly linked circular list, we must do:
(3分)

  • A. p->next=s; s->prior=p; p->next->prior=s ; s->next=p->next;
  • B. p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
  • C.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
  • D. s->prior=p; s->next=p->next; p->next->prior=s; p->next=s

2-30

To delete p from a doubly linked list, we must do:
(3分)

  • A.p->prior=p->prior->prior; p->prior->next=p;
  • B.p->next->prior=p; p->next=p->next->next;
  • C.p->prior->next=p->next; p->next->prior=p->prior;
  • D.p->next=p->prior->prior; p->prior=p->next->next;

2-28

将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,那么可能的最少比较次数是:
(2分)

  • A.1
  • B.N
  • C.2N
  • D.NlogN

2-31

已知表头元素为c的单链表在内存中的存储状态如下表所示:

现将f存放于1014H处,并插入到单链表中,若f在逻辑上位于a和e之间,则a、e、f的“链接地址”依次是:
(2分)

  • A.1010H, 1014H, 1004H
  • B.1010H, 1004H, 1014H
  • C.1014H, 1010H, 1004H
  • D.1014H, 1004H, 1010H

2-32

For a non-empty doubly linked circular list, with h and t pointing to its head and tail nodes, respectively, the FALSE statement is:
(2分)

  • A.t->next == h
  • B.h->pre == t
  • C.t->pre->next == t
  • D.h->next == t

2-33

For a non-empty doubly linked circular list, with h and t pointing to its head and tail nodes, respectively, the TRUE statement is:
(2分)

  • A.t->next == h
  • B.h->pre == NULL
  • C.t->next == h->next
  • D.h->next == t

3-2多选

链表 - 时间复杂度

在包含 n 个数据元素的链表中,▁▁▁▁▁ 的时间复杂度为 O(n)。
(2分)

  • A.访问第 i 个数据元素
  • B.在第 i (1≤i≤n) 个结点后插入一个新结点
  • C.删除第 i (1≤i≤n) 个结点
  • D.将 n 个元素按升序排序

4-1填空

设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句:

py->next=px->next;

px->next=py;

5-1

下列代码的功能是返回带头结点的单链表L的逆转链表。

List Reverse( List L )
{
Position Old_head, New_head, Temp;
New_head = NULL;
Old_head = L->Next;

while ( Old_head )  {Temp = Old_head->Next;

Old_head->Next = New_head;

;
New_head = Old_head;
Old_head = Temp;
}

L->Next = New_head;

;
return L;
}

PTA数据结构第二章线性表相关推荐

  1. 数据结构第二章-线性表(详细知识点总结)

    目录 第二章 线性表 2.1 线性表的定义和操作 2.1.1 线性表的定义 2.1.2 线性表的基本操作 2.2线性表的顺序表示 2.2.1 顺序表的定义 2.2.2 顺序表上基本操作的实现 2.3 ...

  2. C语言数据结构-第二章线性表-电大

    第二章线性表--内容简介 本章将进入线性结构的学习. 线性结构是最简单.最常用的一种数据结构. 本章将学习线性表的定义.顺序和链式两种存储方式及相应存储结构上的运算实现.通过典型示例训练,掌握线性表的 ...

  3. 王道408数据结构——第二章 线性表

    文章目录 一.线性表的定义和基本操作 线性表 顺序表 1.插入操作 2.删除操作 3.按值查找(顺序查找) 二.单链表 1. 头插法 2. 尾插法 3. 按序号查找 4. 按值查找 5. 插入结点 6 ...

  4. C++ 数据结构第二章 ----- 线性表

    文章目录 线性表 线性表的顺序存储 一.基本概念 二.基本操作 线性表的链式存储 一.基本概念 二.基本操作 三.双链表 (1) 双链表的插入操作 (2) 双链表的删除操作 四.循环链表 五.循环双链 ...

  5. 数据结构第二章线性表学习笔记

    1.    C++程序设计模板   (关于template的解释)[以下内容摘自百度] 函数声明格式 template <class(或typename) any(或任意符合规则的名称)> ...

  6. (王道408考研数据结构)第二章线性表-第三节5:顺序表和链表的比较

    文章目录 一:逻辑结构比较 二:存储结构比较 三:基本操作比较 (1)初始化操作 (2)销毁操作 (3)插入和删除 (4)查找 顺序表和链表的选取原则 一:逻辑结构比较 顺序表和链表都是线性表,都是线 ...

  7. (王道408考研数据结构)第二章线性表-第三节1:单链表的定义及其操作(插入和删除,建立之尾插和头插)

    文章目录 一:单链表相关 (1)单链表的定义 (2)头指针与头结点 二:单链表代码描述 三:单链表的初始化 四:单链表的插入 五:单链表的删除 六:单链表查找 (1)按位查找 (2)按值查找 七:单链 ...

  8. (王道408考研数据结构)第二章线性表-第二节1:顺序表的定义

    文章目录 一:顺序表实现 (1)静态分配 (2)动态分配 二:顺序表特点 顺序表:也叫做线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素 一:顺序表实现 (1)静态分配 静 ...

  9. (王道408考研数据结构)第二章线性表-第一节:线性表的定义和基本操作

    文章目录 一:线性表的定义 二:线性表的基本操作 一:线性表的定义 线性表(Linear List):零个或多个数据元素的有限序列 元素之间是有顺序的 若元素存在多个,则第一个元素无前驱,最后一个元素 ...

最新文章

  1. 2018.5.29 Oracle连接到空闲例程
  2. Oculus软件完全支持三传感器室内跟踪
  3. 算法笔记_120:蓝桥杯第六届省赛(Java语言B组部分习题)试题解答
  4. 使用Python作为计算器
  5. 李洋疯狂C语言之选择排序
  6. (二)C语言数据类型(2)
  7. 南孚电池:如何从0-1建立经营分析报表平台,助力集团转型?
  8. mapping数据列表
  9. python做软件测试需要那些条件_做软件测试需要学什么
  10. .NET客户端实现Redis中的管道(PipeLine)与事物(Transactions)
  11. 部署Hadoop2.0高性能集群
  12. mod_signalwire.c:371 Curl Result 1, Error: Protocol https not supported
  13. Jmeter安装步骤
  14. 有哪些好用的低代码开发平台(2)
  15. rms 公式 有效值_RMS,DC,MEAN,RMN到底有什么区别?
  16. 冷血格斗场和热血格斗场
  17. 订单拆单,电商开发时 经常遇到的问题
  18. C++入门——Day5_分支语句和逻辑运算符
  19. 手机网页版JS压缩上传图片--base64位 兼容IOS和安卓
  20. Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)

热门文章

  1. Google word/sheets 常见的使用:
  2. GPS 轨迹处理方法
  3. signature=54cb1c123491dc1a268a21f3502cccfc,汉隶《曹全碑》精讲精练
  4. MySQL怎样通过Adjacency List存储树形结构?
  5. Android高斯模糊、高斯平滑(Gaussian Blur)【2】
  6. java SSM 多数据源
  7. Efficient Heterogeneous Collaborative Filtering without Negative Sampling for Recommendation (2020)
  8. Tableau豆瓣电影数据项目实战练习2
  9. php银行卡号姓名,PHP实现根据银行卡号判断银行_PHP
  10. 选择城市,按城市的首字母进行排序