第1章 算法与数据结构基础
算法与数据结构试题

算法与数据结构试题第⼀章算法分析基础1、下列时间复杂度最好的是( )A 、O )(log 2nB 、O )(2n C 、O )(n D 、O )log (2n n2、从逻辑上可以把数据结构分为哪两⼤类?()A 、动态结构、静态结构B 、顺序结构、链式结构C 、线性结构、⾮线性结构D 、初等结构、构造型结构3、算法分析的主要任务是分析()A .算法是否具有较好的可读性B .算法中是否存在语法错误C .算法的功能是否符合设计要求D .算法的执⾏时间和问题规模之间的关系4、下⾯程序段中带下划线的语句的执⾏次数是。
for(i=0;i<=n;i++)for(j=0;j<=i;j++) x=x+1;5、下列程序的时间复杂度为()s=0;for(i=0;i<10;i++)for(j=0;j<10;j++)s=s+1;A . O (10)B . O (20)C. O (1) D.O(102)6、数据的最⼩单位是()A.数据项B.数据类型C.数据元素D.数据变量7、下列程序的时间复杂度为()i=1;k=100;{k=k+1;i=i+2;}A.O(1)B. O(n)C. O(n3)D.O(n2)8、称算法的时间复杂度为O(logn),其含义是指算法的执⾏时间和_______的数量级相同。
第⼆章线性表1、⾮空的循环单链表L的尾结点(由p所指)满⾜()A.p->next=NULLB. p=NULLC. p->next= LD. p= L2、从⼀个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动的元素的个数是()A.n-iB.n-i+1C.n-i-1D.i3、链表不具备的特点是()A.可随机访问任⼀结点 B.插⼊删除不需要移动元素C.不必事先估计存储空间 D.所需空间与其长度成正⽐4、顺序表的存储密度为1,⽽链表的存储密度 _。
5、写算法,顺序查找⼀个元素值等于e的元素的逻辑序号。
C语言算法与数据结构

数据的逻辑结构和物理结构是密不可分的两个方面, 一个算法的设计取决于所选定的逻辑结构,而算法的实 现依赖于所采用的存储结构。 在C语言中,用一维数组表示顺序存储结构;用结 构体类型表示链式存储结构。
数据结构的三个组成部分: 逻辑结构: 数据元素之间逻辑关系的描述
D_S=(D,S)
存储结构: 数据元素在计算机中的存储及其逻辑
K={k1, k2, …, k9}
R={ <k1, k3>,<k1, k8>,<k2, k3>,<k2, k4>,<k2, k5>,<k3, k9>, <k5, k6>,<k8, k9>,<k9, k7>,<k4, k7>,<k4, k6> }
画出这逻辑结构的图示,并确定那些是起点,那些是终点
数据元素之间的关系可以是元素之间代表某种含义 的自然关系,也可以是为处理问题方便而人为定义的 关系,这种自然或人为定义的 “关系”称为数据元素 之间的逻辑关系,相应的结构称为逻辑结构。
③ 树型结构:结构中的数据元素之间存在一对多的 关系。 ④ 图状结构或网状结构:结构中的数据元素之间存 在多对多的关系。
图1-3
四类基本结构图
1.1.3 数据结构的形式定义
数据结构的形式定义是一个二元组:
Data-Structure=(D,S)
其中:D是数据元素的有限集,S是D上关系的有限集。
例2:设数据逻辑结构B=(K,R)
1.3.2 算法设计的要求
评价一个好的算法有以下几个标准 ① 正确性(Correctness ): 算法应满足具体问题的 需求。
② 可读性(Readability): 算法应容易供人阅读和交 流。可读性好的算法有助于对算法的理解和修改。
北京工商大学 算法与数据结构 课程大纲

第二章 线性表: 内容:线性表的逻辑结构,线性表的顺序存储结构,线性表的链式存储结构,循环链表,双向链表。 要求: 1. 了解线性表的逻辑结构特性是数据元素之间存在着线性关系,在计算机中表示这种关系的不同方 法得到两类不同的存储结构。 2. 熟练掌握这两类存储结构的描述方法,以及循环链表、双向链表的特点等。 3. 熟练掌握线性表在顺序存储结构上实现的基本操作:插入、删除等算法。 说明: 线性表结构是以后各章节中动态存储结构的基础,所以要着重讲清结构中指针及指针域的不同。 ----------------------------------------------------------------------------------------------------
第一章 绪论 内容:什么是数据结构,为什么要学习数据结构,基本概念和术语,数据抽象,算法的描述和算法分 析,C 编程要点。 要求:掌握基本概念和术语,初步学会算法的分析度量。 ----------------------------------------------------------------------------------------------------
第七章 排序 内容: 内部排序:插入排序,快速排序,选择排序,归并排序,*基数排序(多关键字排序)。 *外部排序简介。 要求: 1. 了解排序的定义和各种排序方法的特点。熟悉各种方法的排序过程及其依据的原则。 *2. 掌握各种排序方法的时间复杂度的分析方法。能从“关键字间的比较次数”分析排序算法的平 均情况和最坏情况的时间性能。 3. 理解排序方法“稳定”或“不稳定”的含义,弄清楚在什么情况下要求应用的排序方法必须是稳 定的。 *4.了解外部排序的基本过程及其时间分析。
第五章 图 内容:图的定义和术语,图的存储结构,图的遍历,深度优先搜索,广度优先搜索,应用举例:人工 智能中的问题求解。无向图的连通分量和生成树,最小生成树,有向无环图及其应用:拓扑排序,关键路 径,最短路径。
数据结构基础知识

复习提纲第一章数据构造概述根本概念与术语〔P3〕1.数据构造是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科.2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合2.数据元素是数据的根本单位3.数据对象一样性质的数据元素的集合4.数据构造三方面容:数据的逻辑构造.数据的存储构造.数据的操作.〔1〕数据的逻辑构造指数据元素之间固有的逻辑关系.〔2〕数据的存储构造指数据元素及其关系在计算机的表示( 3 ) 数据的操作指在数据逻辑构造上定义的操作算法,如插入,删除等.5.时间复杂度分析--------------------------------------------------------------------------------------------------------------------1、名词解释:数据构造、二元组2、根据数据元素之间关系的不同,数据的逻辑构造可以分为集合、线性构造、树形构造和图状构造四种类型。
3、常见的数据存储构造一般有四种类型,它们分别是___顺序存储构造_____、___链式存储构造_____、___索引存储构造_____和___散列存储构造_____。
4、以下程序段的时间复杂度为___O(N2)_____。
int i,j,*;for(i=0;i<n:i++) n+1for(j=0;j<n;j++) n+1*+=i;------------------------------------------------------------------------------------------------------------------第二章线性表1.顺序表构造由n(n>=0)个具有一样性质的数据元素a1,a2,a3……,an组成的有穷序列//顺序表构造#define MA*SIZE 100typedef int DataType;Typedef struct{DataType items[MA*SIZE];Int length;}Sqlist,*LinkList;2.单链表(1)链表结点构造//链表的节点构造Typedef struct Node{int data;struct Node *ne*t;} Lnode,*Pnode,*LinkList;(2)结点遍历void TraverseList(LinkList t){LinkList p;while(t){p=t;t=t->ne*tfree(p);}}(3)链表操作算法:初始化、插入、输出、删除void InitList(LinkList *h){*h=(LinkList)malloc(sizeof(LNode));if(!h){print("初始化错误〞);return;}(*h)->ne*t=NULL;}void InsertList(LinkList h,int pos,datatype *){ LinkList p=h,q;int i=0;while(p&&i<pos-1){p=p->ne*t;i++;}if(!p||i>pos-1)print("插入位置出错!!〞);InitList(&q);q->ne*t=NULL;q->data=*;}void DeleteList(LinkList h,int pos){LinkList p=h,q;int i=0;while(p&&i<pos-1){p=p->ne*t;i++;}if(!p||i>pos-1){cout<<〞删除位置错误〞;return;}q=p->ne*t;p->ne*t=q->ne*t;free(q);}-----------------------------------------------------------------------------------------------------------------1、线性表中,第一个元素没有直接前驱,最后一个元素没有直接后驱。
陈嫒算法与数据结构第三版课后答案

陈嫒算法与数据结构第三版课后答案算法与数据结构-C语言描述(第三版)第1章绪论1、解释以下概念:逻辑结构,存储结构,操作,数据结构,数据结构的表示,数据结构的实现,抽象数据类型,算法,算法的时间代价,算法的空间代价,大O表示法,贪心法,回溯法,分治法。
答:(1)逻辑结构(数学模型):指数据元素之间地逻辑关系。
具体解释:指数学模型(集合,表,树,和图)之间的关系。
描述方式:B=<K,R>,K是节点的有穷集合,R是K上的一个关系。
(2)存储结构(物理结构):数据的逻辑结构在计算机存储器中的映射(或表示)。
(3)操作(行为):指抽象数据类型关心的的各种行为在不同的存储结构上的具体算法(或程序)。
(4)数据结构:传统观念:数据结构是计算机中表示(存储)的、具有一定逻辑关系和行为特征的一组数据。
②根据面向对象的观点:数据结构是抽象数据类型的物理实现。
(5)数据结构的表示:(6)数据结构的实现:(7)抽象数据类型:(8)算法:是由有穷规则构成(为解决其中一类问题)的运算序列。
-算法可以有若干输入(初始值或条件)。
-算法通常又有若干个输出(计算结果)。
-算法应该具有有穷性。
一个算法必须在执行了有穷步之后结束。
-算法应该具有确定性。
算法的每一步,必须有确切的定义。
-算法应该有可行性。
算法中国的每个动作,原则上都是能够有机器或人准确完成的。
(9)算法的时间代价:(10)算法的空间代价:(11)大O表示法:-更关注算法复杂性的量级。
-若存在正常数c和n0,当问题的规模n>=cf(n), 则说改算法的时间(或空间)代价为O(f(n))(12)贪心法:当追求的目标是一个问题的最优解是,设法把整个问题的求解工作分成若干步来完成。
在其中的每一个阶段都选择都选择从局部来看是最优的方案,以期望通过各个阶段的局部最有选择达到整体的最优。
例如:着色问题:先用一种颜色尽可能多的节点上色,然后用另一种颜色在为着色节点中尽可能多的节点上色,如此反复直到所有节点都着色为止;(13)回溯法有一些问题,需要通过彻底搜索所有的情况寻找一个满足一些预定条件的最优解。
大数据结构的基本概念

实用标准文档文案大全第1章数据结构基础结构之美无处不在:说到结构,任何一件事物都有自己的结构,就如可以看得见且触摸得到的课桌、椅子,还有看不见却也存在的化学中的分子、原子。
可见,一件事物只要存在,就一定会有自己的结构。
一幅画的生成,作家在挥毫泼墨之前,首先要在数尺素绢之上做结构上的统筹规划、谋篇布局。
一件衣服的制作,如果在制作之前没有对衣服的袖、领、肩、襟、身等各个部位周密筹划,形成一个合理的结构系统,便无法缝制出合体的衣服。
还有教育管理系统的结构、通用技术的学科结构和课堂教学结构等。
试想一下,管理大量数据是否也需要用到数据结构呢?本章知识要点:数据结构的基本概念数据类型和抽象数据类型算法和算法分析1.1 数据结构的基本概念计算机科学是一门研究数据表示和数据处理的科学。
数据是计算机化的信息,它是计算机可以直接处理的最基本和最重要的对象。
无论是进行科学计算,还是数据处理、过程控制、对文件的存储和检索以及数据库技术等计算机应用,都是对数据进行加工处理的过程。
因此,要设计出一个结构良好而且效率较高的程序,必须研究数据的特性、数据间的相互关系及其对应的存储表示,并利用这些特性和关系设计出相应的算法和程序。
计算机在发展的初期,其应用范围是数值计算,所处理的数据都是整型、实型和布尔型等简单数据,以此为加工、处理对象的程序设计称为数值型程序设计。
随着计算技术的发展,计算机逐渐进入到商业、制造业等其他领域,广泛地应用于数据处理和过程控制中。
与此相对应,计算机所处理的数据也不再是简单的数值,而是字符串、图形、图像、语音和视频等复杂的数据。
这些复杂的数据不仅量大,而且具有一定的结构。
例如,一幅图像是一个由简单数值组成的矩阵,一个图形中的几何坐标可以组成表。
此外,语言编译过程中所使用的栈、符号表和语法树,操作系统中用到的队列、磁盘目录树等,都是有结构的数据。
数据结构所研究的就是这些有结构的数据,因此,数据结构知识无论是对研制系统软件还是对开发应用软件来说,都非常重要,是学习软件知识和提高软件设计水平的重要基础。
二级vfp算法与数据结构基础

结构化程序算法的特性如下。
(1)输入 (2)输出 (3)确定性 (4)有穷性 (5)有效性
算法复杂度通常采用由德国数学家
Paul Bachmann在1892年提出的“大O表达 式”表述,该符号以大写字母O带一对小 括号括起的一个表达式构成。一般描述算 法复杂度时括号里用N的简单函数表示, 如O(N2)(读作:ON大平方)。
图1-1 数据结构的图形表示
数据的逻辑结构分为线性结构和非线 性结构两类:
线性结构:数据元素之间构成一种顺 序的线性关系,如图1-2所示。线性结构包 括线性表、堆栈、队列和串。
数据 1
数据 2
数据 3
图1-2 数据元素的线性关系
线性结构的特征有:
(1)集合中必存在惟一的一个“第 一元素”;
(2)集合中必存在惟一的一个“最 后元素”;
(3)除最后的元素之外,均有惟一 的后继;
(4)除第一元素之外,均有惟一的 前驱。
非线性结构是指不满足以上条件的存 储结构。非线性结构包括树、二叉树、 图 (或网络)和广义表。
1.3 线 性 表
1.3.1 线性表的顺序存储结构
线性表是最常用且最简单的一种数据 结构。
采用顺序存储结构的线性表也叫做顺 序表,如n个元素的线性表可以记为:L= (a1,a2,…,an)。
31 23 12 66
05 17 70 62
88
55
(d) 一般二叉树的顺序存储
图1-16 二叉树的顺序表示
(2)链式存储结构
root
root
root
A B
A^
B
A ^^
B
C
D
^C^
D
^C ^
D
E
数据结构与算法论文

课 程 学 习 总 结
班级
学号
姓名
考核成绩
一、学习内容总结(按章节进行)
第一章:数据结构和算法
本章主要是对数据、数据类型、数据结构、算法及算法分析等基本概念的掌握,而如何合理地组织数据、高效地处理数据正是扩大计算机领域、提高软件效率的关键,所以对这些概念的理解就显得十分重要。
数据是指描述客观事物的数值、字符、相关符号等所有能够输入到计算机中并能被计算机程序处理的符号的总称,其基本单位是数据元素,而数据类型是一个同类值的集合和定义在这个值集上的一组操作的总称。在高级程序语言中定义一种数据类型时,编译程序编译系统就能获得如下信息:(1)、一组性质相同的值的集合;(2)、一个预订的存储体系;(3)、定义在这个值集合上的一组集合。数据结构是指数据元素之间的关系,它包括数据的逻辑结构、存储结构、一组运算集合;数据的逻辑结构(即数据结构)分为线性结构和非线性结构,数据的存储方法有:顺序存储方法、连接存储方法、索引存储方法和散列存储方法。接下来便是关于算法的有关概念,算法是为解决一个特定问题而采取的确定的有限步骤集合,它具有有穷性、确定性、可行性、输入和输出。关于算法的性能分析,分为时间性能分析和空间性能分析,在这里要记得常见的时间复杂度的比较:O(1)< O(log n)< O(n)< O(nlog n)<(n )< O(n )< O(n )< O(2 )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3.2 线性表的链式存储结构
链式存储是指用一组地址任意的存储 单元存放线性表中的数据元素。 链式存储采用结点来表示数据元素。 一个结点由两个部分构成:数据域和指 针域。
结构化程序算法的特性如下:
(1)输入:一个算法有0个或多个输入,以刻 画运算对象的初始情况,所谓0个输入是指算法本身 定除了初始条件; (2)输出:一个算法有一个或多个输出,以反 映对输入数据加工后的结果。没有输出的算法是毫 无意义的; (3)确定性:算法的每一步骤必须有确切的定 义; (4)有穷性:一个算法必须保证执行有限步之 后结束; (5)有效性
A B C A B D C
1.3 线 性 表
1.3.1 线性表的顺序存储结构
线性表是最常用且最简单的一种数据 结构。 采用顺序存储结构的线性表也叫做顺 序表,如n个元素的线性表可以记为:L= (a1,a2,…,an)。
顺序表L
学号 姓名 性别 平时成绩 期考成绩 期评成绩
a1 a2 a3 a4 a5
1.1 算法的基本概念
递推 解:用 F(n) 表示第 n 个月的兔子对数。 第一个月: F(1) = 1 第二个月: F(2) = F(1) +0 = 1 第三个月: F(3) = F(2) +1 = 2 第四个月: F(4) = F(3) +1 = 3 第五个月: F(5) = F(4) +2 = 5 第六个月: F(6) = F(5) +3 =8
算法的时间复杂度指算法所需要的计算 工作量,算法时间是由控制结构和原操作 的决定的。算法中基本操作重复执行的次 数是问题规模n的某个函数f(n),记作: T(n) = O(f(n)) 它表示随问题规模n的增大,算法执行 n 时间的增长率和f(n)的增长率相同。 算法工作量分析:平均性态(概率计算); 最坏情况复杂性(运算最大次数)。
算法的空间复杂度描述算法的存储空 间需求,运行完一个程序所需要的内存 大小是问题规模n的某个函数g(n),记作: S(n) = O(g(n)) 它表示随着问题规模n的增大,算法 运行所需存储空间的增长率S(n)与g(载体,是描述客 观事物的数、字符,以及所有能输入到 计算机中,被计算机程序识别和处理的 符号的集合。数据包括数值性数据和非 数值性数据。
出队 front
a0
a1
a2
…
an-1
入队 rear
图1-10 顺序队列
注意, 是尾元素的位置, 是头元素的前一个 注意,rear是尾元素的位置,front是头元素的前一个 是尾元素的位置 是头元素的 位置。 位置。
front 5 4 rear
6 A
7 B0 C 1
E D 3 2
f大于r的情况 6 5 7 front 0 1 3 空队列 2 rear 5 6 7 front 0 A 1 3 2 5 6 7 front 0 A 1 C 3 B 2 5 6 7 0 1 C 3 B 2 front
减半递推技术 设方程 f (x) = 0 在区间 [a, b] 上有实根,且 f (a) 与 f (b) 异号。利用二分法求该方程在 [a, b] 上的一个实根。 解:(1) 取区间的中点 c = (a + b)/2, (2) 判断 f (c)?=0 ----若 f (c) = 0,则即为所求的根; ----若 f (c) ≠ 0,则根据以下原则继续减半区间: 若 f (a) f (c) < 0,则取区间的前半部分; 若 f (b) f (c) < 0,则取区间的后半部分; (3) 判断区间的长度是否达到要求精度 ----若 | a – b| < ε,则取为根的近似根; ----若 | a – b| ≥ ε ,则重复上述的减半区间过 程。
1.4 栈 和 队 列
1.4.1 栈及其基本操作
栈是规定只能在表的一端进行插入和删除的 线性表。允许插入和删除的一端称为栈顶,另一 端称为栈底。当表中没有元素时称为空栈。由于 栈的插入和删除运算仅在栈顶一端进行,后进栈 的元素必定先被删除,所以又把栈称为后进先出 (Last_In_First_Out,简称LIFO)表。栈有插入 (即进栈)和删除(即出栈)两种基本操作。 插入也叫入栈或进栈。
数据元素(也称为元素、接点、顶点、 记录):数据元素是数据的基本单位。 一个数据元素可以由若干个数据项组成。 数据项:数据项是具有独立含义的最小 标识单位。 数据对象:数据的子集,是具有相同性 质的数据成员(数据元素)的集合。 数据处理效率:处理的速度;占用的空 间。
数据结构的定义:数据结构是指数据 之间的相互关系,即数据的组织形式, 由某一数据对象及该对象中所有数据成 员之间的关系组成,记为: Data_Structure={D,R},其中D是某 一数据对象,R是该对象中所有数据成员 之间的关系的有限集合,通常指前后关 系。 它包括逻辑结构、存储结构和数 据的运算3个方面的内容。
d4 d3 d6 d8 d9
d7
D={d1,d2,d3,d4,d5,d6,d7,d8,d9} R={(d1,d2),(d1,d5),(d5,d7),(d4,d3),(d3,d6),(d6,d8),(d6,d9)} 图1-1 数据结构的图形表示
数据的逻辑结构分为线性结构和非线 性结构两类: 线性结构:数据元素之间构成一种顺 序的线性关系,如图1-2所示。线性结构 包括线性表、堆栈、队列和串。
1.1 算法的基本概念
算法的特征:
⑴可行性: 针对实际问题而设计的算法,执行后能够得到满意的结果。 ⑵确定性:算法中的每一个步骤都必须有明确的定义,不允许有模 棱两可的解释和多义性。 ⑶有穷性:算法必需在有限时间内做完,即算法必需能在执行有限 个步骤之后终止。 ⑷拥有足够的情报:要使算法有效必需为算法提供足够的情报。当 算法拥有足够的情报时,此算法才是有效的;但当提供的情报不足 时,算法可能无效。
05302101
梁菊英
女
72
70
71
05302102
韦丽华
女
80
77
78.5
05302103
黄芳
女
78
80
79
05302104
覃柳成
男
90
85
87.5
05302105
黎文连
男
70
68
69
顺序表 L: a1 a2 a3 a4 a5
如果第一条记录的首地址是ADR(a1),每一条记录占K个字节, 则它们的地址依次可表示为: ADR(a1) ADR(a1)+K ADR(a1)+2K ADR(a1)+3K ADR(a1)+4K
1.1 算法的基本概念
递归法
汉诺塔(又称河内塔)问题是印度的一个古 老的传说。开天辟地的神勃拉玛在一个庙里 留下了三根金刚石的棒,第一根上面套着64 个圆的金片,最大的一个在底下,其余一个 比一个小,依次叠上去,庙里的众僧不倦地 把它们一个个地从这根棒搬到另一根棒上, 规定可利用中间的一根棒作为帮助,但每次 只能搬一个,而且大的不能放在小的上面。 面对庞大的数字(移动圆片的次 数)18446744073709551615,看来,众僧们 耗尽毕生精力也不可能完成金片的移动。
数据的逻辑结构:用来描述数据元素之 间的逻辑关系。 数据的存储结构:用来描述数据元素及 数据元素之间的关系在存储器中的存储形式。 (逻辑结构与存储结构的关系犹如家庭照相 中辈分与点位的关系。) 数据的运算:即对数据元素施加的操作。 数据结构的图形表示:用图形来直观地 表示数据及其之间的关系。
d1 d2 d5
1.1 算法的基本概念
1.1 算法的基本概念
确定两块环片的操作为一个基本的操作; 三块环片把上面两块看作一个整体后转换为两 块的操作; 四块环片把上面三块看作一个整体后转换为两 块的操作; …………… 再多的环片都可回归到两块的操作。 递归分为:直接递归和间接递归法。递归是递 推的逆过程。
1.1 算法的基本概念
回溯法
“盗墓迷城”:在传说中,汉姆奈普特 拉埋葬着大量的财富,寻宝者和地理学 家都为这个传说而疯狂。 如何找到传说 中的宝藏,只能试探性的选择可能的路 径,否则回到原点,真到找到宝藏为止。
算法复杂度 算法复杂度通常采用由德国数学家 Paul Bachmann在1892年提出的“大O表 达式”表述,该符号以大写字母O带一对 小括号括起的一个表达式构成。一般描 述算法复杂度时括号里用N的简单函数表 示,如O(N2)(读作:ON大平方)。
1.1 算法的基本概念
算法的基本要素:
算法的基本要素: 一是对数据对象的运算和操作;二是算法的 控制结构。 指令系统:一个计算机系统能执行的所有指令的 集合。 基本运算包括:算术运算、逻辑运算、关系运算、 数据传输。 算法的控制结构:顺序结构、选择结构、循环结 构。
1.1 算法的基本概念
算法基本设计方法:列举法、归纳法、 递推、递归、减半递推技术、回溯法。
图1-3 顺序表
顺序表有插入和删除两种基本操作。
顺序表 L: a1 0 … ai-1 i−2 ai i−1 插入前 a1 0
i个元素都向后移 个元素都向后移 一位,效率低。 一位,效率低。
… n−1
an n
空的存 储空间
…
ai-1 i−2
e i−1 插入后
ai i
…
an n+1
图1-4 顺序表的插入
入栈、读栈(不退)、退栈
a0 a1
top=30
a48 bottom=49 a49
元素个数=bottom-top+1 =49-30+1
1.4.2 队列及其基本操作
队列可以看作是插入在一端进行,删除 在另一端进行的线性表。允许插入的一端 称为队尾,允许删除的一端称为队头。 队列又称为先进先出 (First_In_First_Out,FIFO)表。队列的基 本操作有插入(即入队)和删除(即出队) 两种。