计算机基础_算法与数据结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 20
考点6:栈和队列
1.栈及其基本运算 ①栈是一种特殊的线性表 ②栈的插入和删除操作被限定在表的某一端。即这 种线性表的一端是封闭的,不允许进行插入与删除 元素;另一端是开口的,允许进行插入与删除元素。 例如,子弹夹就是一种栈的结构 ③允许插入和删除操作的一端称为栈顶(Top),另一 端为栈底(Bottom),表中无元素时称为空栈 ④栈的插入操作称为进栈或者压栈,而栈的删除操 作称为出栈 ⑤栈具有记忆功能,它遵守“后进先出”或者“先 进后出”的操作原则
2013年7月24日星期三
主讲:辽宁科技大学 软件学院 计算中心 刘俊
2
考点1:算法
1.算法的基本概念 ①算法是指对解题方案的准确而完整的描述。 ②程序=算法+数据结构 2.算法的基本特征 ①可行性 ②确定性 ③有穷性(即算法必须能在执行有限个步骤之后终止) ④拥有足够的情报 归纳总结:算法是一组严谨地定义运算顺序的规则, 并且每一个规则都必须是有效的,而且必须是明确 的,此顺序当然也必须将在有限的次数下能最终终 止。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 15
考点4:线性表的顺序存储
1.线性表的基本概念(续) ⑥非空线性表有如下一些结构特征: 有且只有一个根结点A1,它无前件; 有且只有一个终端结点An,它无后件; 除根结点与终端结点外,其他所有结点有且只有 一个前件,也有且只有一个后件。 2.线性表的运算 ①初始化运算InitList(L):构造一个空的线性表L, 即表的初始化 ②求表长运算GetLen(L):求线性表中的元素的个数 ③取元素运算GetElem(L,i,e):若i满足范围,则其 作用是返回线性表L的第i个数据元素
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 17
考点5:线性表的链式存储结构
1.存储结点 ①为适应链式存储,内存空间被划分为占若干个字 节多个小块,通常称这些小块为存储结点 ②每个存储结点分为两部分: 数据域:存储数据元素的值; 指针域:存储下一个数据元素的存储序号 ③通常利用C语言中的一维数组来描述,其类型如下 #define MAX 100 /*顺序表的最大容量*/ typedef struct{ DataType data[MAX]; /*存放顺序表元素*/ int length; /*顺序表的实际长度*/ }ssList;
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 16
考点4:线性表的顺序存储
2.线性表的运算(续) ④定位运算LocElem(L,x):若L中存在与x相等的元 素,则返回其第一次出现的位序,否则返回0 ⑤插入运算InsElem(L,x,i):在线性表L的第i个位 序上增加一个新元素 ⑥删除运算DelElem(L,i):删除L中的第i个元素 ⑦遍历运算DisList(L):按顺序输出表中所有元素 3.顺序表的概念 ①按顺序存储方式构造的线性表,即把逻辑上相邻 接数据元素存储在物理地址上也相邻接的存储单元 ②由于顺序存储,存取元素时非常简单、方便,但 是其插入、删除等操作需要移动大量的元素
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 4
考点1:算法
4.算法复杂度 ①算法的时间复杂度 指算法在执行过程中所需基本运算的执行次数, 即指执行算法所需要的计算工作量。 分析算法工作量的方法 平均性态复杂性 最坏情况复杂性 ②算法的空间复杂度:指执行算法所需要的内存空 间。 归纳总结:度量一个算法的工作量,与计算机、程 序设计语言以及程序编制者无关、与算法实现过程 中的许多细节无关,只与问题的规模有关。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 11
考点2:数据结构
1.填空题 数据的逻辑结构在计算机存储空间中的存放形式称 为数据的_____。 2.选择题 以下关于数据的逻辑结构的叙述中,哪一条是不正 确的? A.数据的逻辑结构是数据间关系的描述 B.数据的逻辑结构抽象地反映数据元素间的逻辑 关系 C.数据逻辑结构具体的反映数据在计算机中的存 储方式 D.数据的逻辑分为线性结构和非线性结构
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 5
考点1:算法
1.填空题 问题处理方案的正确而完整的描述称为_____ 算法的复杂度主要包括______复杂度和空间复杂度。 2.选择题 下面叙述正确的是 A.算法的执行效率与数据的存储结构无关 B.算法的空间复杂度是指算法程序中指令(或者语 句)的条数 C.算法的有穷性是指算法必须能在执行有限个步 骤之后终止 D.以上三种描述都不对。
head data next
2013年7月24日星期三
data next
data NULL
19
主讲:辽宁科技大学 软件学院 计算中心 刘俊
考点5:线性表的链式存储结构
3.线性链表的基本运算 ①线性链表的插入 首先要给新元素分配新结点p,并赋值 然后找到待插入位置的前一个结点的指针q 先将p指向q的后件,然后将p挂接在q结点后面 ②线性链表的删除 首先前一个结点p,用另一指针q保存p的后续结点 然后把q结点的后续链挂接在p的后面 最后归还q结点所分配的栈空间 ③线性链表的查找 从头指针指向的结点开始向后沿指针扫描,直到 后面已没有结点或搜索到为止
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 8
考点2:数据结构
3.数据的逻辑结构 ①概念:所谓数据的逻辑结构,是指反映数据元素 之间逻辑关系的数据结构。 ②表示方法 二元关系表示 逻辑结构二要素 一是数据元素的集合,通常记为D 二是D上的关系,它反映了D中各数据元素之 间的前后件关系,通常记为R 一个数据结构可以表示成:B = (D, R) 其中B表示数据结构。为了反映D中各数据元素 之间的前后件关系,一般用二元组来表示。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 18
考点5:线性表的链式存储结构
2.线性链表(单链表) ①概念 所谓线性链表就是链式存储的线性表 其结点中只含有一个指针域,用来指出其后继结 点的存储位置 线性链表的最后一个结点无后继结点,它的指针 域为空(记为NULL或^)。 ②表头指针:另外还要设置表头指针head,指向线 性链表的第一个结点。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 3
考点1:算法
3.算法设计基本方法 ①列举法:解决“是否存在”或“有多少种可能” 等类型问题 ②归纳法 ③递推 ④递归 直接递归 间接递归 ⑤减半递推技术 ⑥回溯法 归纳总结:一个算法一般都可以用顺序、选择、循 环三种基本控制结构组合而成
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 14
考点4:线性表的顺序存储
1.线性表的基本概念 ①线性表是由n(n>=0)个类型相同的数据元素组成的 有限序列,记为(a1,a2,a3,…,an),如一年四季 ②线性表中数据元素的个数n为线性表的长度,n=0 的表称为空表 ③当n>0时,线性表的每个数据元素Ai的位置称为Ai 在线性表中的位序 ④每个元素的具体含义在不同情况下各不相同,它 可以是一个数或一个符号,书的一页,也可以是诸 如航班信息表中的某一行 ⑤复杂线性表的每一个数据元素由若干个数据项组 成,常称这样的数据元素为记录
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 13
考点3:线性结构与非线性结构
1.划分标准:根据前后件关系的复杂程度划分 ①若一个非空的数据结构满足两个条件: 有且只有一个根结点; 每个结点最多有一个前件,也最多有一个后件, 称该数据结构为线性结构,又称线性表。 在线性结构中插入或删除结点后还是线性结构。 ②若一个数据结构不是线性结构,称为非线性结构 2.“线性/非线性结构”与“顺序/链式结构”的关系 ①线性的顺序存储结构 ②线性的链式存储结构 ③非线性的顺序存储结构 ④非线性的链式存储结构
算法与数据结构
2013年7月24日星期三
主讲:辽宁科技大学 软件学院 计算中心 刘俊
1
算法与数据结构考点
考点1:算法 考点2:数据结构 考点3:线性结构与非线性结构 考点4:线性表的顺序存储 考点5:线性表的链式存储 考点6:栈和队列 考点7:树与二叉树 考点8:查找技术 考点9:排序技术
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 9
考点2:数据结构
3.数据的逻辑结构(续) ②表示方法(续) 例如,一年四季的数据结构可以表示成: B = (D, R) D = {春, 夏, 秋, 冬} R = {(春, 夏), (夏, 秋), (秋, 冬)} 图形表示:集合、线性、树、图
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 12
考点2:数据结构
2.选择题(续) 数据的存储结构是指( ) A.存储在外存中的数据 B.数据所占的存储空间量 C.数据在计算机中的顺序存储方式 D.数据的逻辑结构在计算机中的表示 下列叙述中正确的是( ) A.一个逻辑数据结构只能有一种存储结构 B.逻辑结构属于线性的,存储结构属于非线性的 C.链式存储结构比顺序存储结构节省存储空间 D.一个逻辑数据结构可以有多种存储结构,且各 种存储结构影响数据处理的效率
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 7
考点2:数据结构
2.基本概念(续) ③数据项:具有独立意义的最小数据单位。有时一 个数据元素由若干个数据项组成,此时,将数据元 素称为记录,由记录所组成的线性表称为文件。 ④数据对象:具有相同特性的数据元素的集合,是 数据的子集。 ⑤结构:指数据元素之间的前后件关系。 ⑥数据结构:指相互关联的数据元素的集合。 一是表示数据元素的信息 二是具在有相同特征的数据元素集合中, 各数据 元素之间存在反映集合中数据元素固有结构的某 种关系。一般使用前后件关系来描述。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 6
考点2:数据结构
1.研究内容:主要研究数据的逻辑结构、数据的存储结 构、对各种数据结构进行的运算 ①数据集合中各数据元素之间所固有的逻辑关系, 即数据的逻辑结构; ②在对数据进行处理时, 各数据元素在计算机中的 存储关系,即数据的存储结构。 ③逻辑结构和存储结构的区别 2.基本概念 ①数据:描述客观事物的数、字符以及所有能输入 到计算机中并被程序加工处理的符号的集合。 ②数据元素:数据的基本单位,即数据集合中的个 体。例如描述一年四季的季节名春、夏、秋、冬。
归纳总结:数据元素之间的前后件关系是指它们的 逻辑关系,与它们在计算机中的存储位置无关。因 此,上述的数据结构实际上是数据的逻辑结构。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 10
考点2:数据结构
4.数据的储存结构 ①概念:数据的逻辑结构在计算机存储空间的存பைடு நூலகம் 形式称为数据的存储结构。 ②存储形式: 数据元素之间的关系的表示方法: 顺序映像→顺序存储结构 非顺序映像→链式存储结构 顺序映像借助元素在存储器中的相对位置来表示 非顺序映像借助指示元素存储地址的指针来表示 数据元素在计算机存储空间中的位置关系可能与 逻辑关系不同,逻辑结构可以表示成多种存储结 构。存储结构不同,数据处理的效率也不同。
考点6:栈和队列
1.栈及其基本运算 ①栈是一种特殊的线性表 ②栈的插入和删除操作被限定在表的某一端。即这 种线性表的一端是封闭的,不允许进行插入与删除 元素;另一端是开口的,允许进行插入与删除元素。 例如,子弹夹就是一种栈的结构 ③允许插入和删除操作的一端称为栈顶(Top),另一 端为栈底(Bottom),表中无元素时称为空栈 ④栈的插入操作称为进栈或者压栈,而栈的删除操 作称为出栈 ⑤栈具有记忆功能,它遵守“后进先出”或者“先 进后出”的操作原则
2013年7月24日星期三
主讲:辽宁科技大学 软件学院 计算中心 刘俊
2
考点1:算法
1.算法的基本概念 ①算法是指对解题方案的准确而完整的描述。 ②程序=算法+数据结构 2.算法的基本特征 ①可行性 ②确定性 ③有穷性(即算法必须能在执行有限个步骤之后终止) ④拥有足够的情报 归纳总结:算法是一组严谨地定义运算顺序的规则, 并且每一个规则都必须是有效的,而且必须是明确 的,此顺序当然也必须将在有限的次数下能最终终 止。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 15
考点4:线性表的顺序存储
1.线性表的基本概念(续) ⑥非空线性表有如下一些结构特征: 有且只有一个根结点A1,它无前件; 有且只有一个终端结点An,它无后件; 除根结点与终端结点外,其他所有结点有且只有 一个前件,也有且只有一个后件。 2.线性表的运算 ①初始化运算InitList(L):构造一个空的线性表L, 即表的初始化 ②求表长运算GetLen(L):求线性表中的元素的个数 ③取元素运算GetElem(L,i,e):若i满足范围,则其 作用是返回线性表L的第i个数据元素
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 17
考点5:线性表的链式存储结构
1.存储结点 ①为适应链式存储,内存空间被划分为占若干个字 节多个小块,通常称这些小块为存储结点 ②每个存储结点分为两部分: 数据域:存储数据元素的值; 指针域:存储下一个数据元素的存储序号 ③通常利用C语言中的一维数组来描述,其类型如下 #define MAX 100 /*顺序表的最大容量*/ typedef struct{ DataType data[MAX]; /*存放顺序表元素*/ int length; /*顺序表的实际长度*/ }ssList;
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 16
考点4:线性表的顺序存储
2.线性表的运算(续) ④定位运算LocElem(L,x):若L中存在与x相等的元 素,则返回其第一次出现的位序,否则返回0 ⑤插入运算InsElem(L,x,i):在线性表L的第i个位 序上增加一个新元素 ⑥删除运算DelElem(L,i):删除L中的第i个元素 ⑦遍历运算DisList(L):按顺序输出表中所有元素 3.顺序表的概念 ①按顺序存储方式构造的线性表,即把逻辑上相邻 接数据元素存储在物理地址上也相邻接的存储单元 ②由于顺序存储,存取元素时非常简单、方便,但 是其插入、删除等操作需要移动大量的元素
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 4
考点1:算法
4.算法复杂度 ①算法的时间复杂度 指算法在执行过程中所需基本运算的执行次数, 即指执行算法所需要的计算工作量。 分析算法工作量的方法 平均性态复杂性 最坏情况复杂性 ②算法的空间复杂度:指执行算法所需要的内存空 间。 归纳总结:度量一个算法的工作量,与计算机、程 序设计语言以及程序编制者无关、与算法实现过程 中的许多细节无关,只与问题的规模有关。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 11
考点2:数据结构
1.填空题 数据的逻辑结构在计算机存储空间中的存放形式称 为数据的_____。 2.选择题 以下关于数据的逻辑结构的叙述中,哪一条是不正 确的? A.数据的逻辑结构是数据间关系的描述 B.数据的逻辑结构抽象地反映数据元素间的逻辑 关系 C.数据逻辑结构具体的反映数据在计算机中的存 储方式 D.数据的逻辑分为线性结构和非线性结构
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 5
考点1:算法
1.填空题 问题处理方案的正确而完整的描述称为_____ 算法的复杂度主要包括______复杂度和空间复杂度。 2.选择题 下面叙述正确的是 A.算法的执行效率与数据的存储结构无关 B.算法的空间复杂度是指算法程序中指令(或者语 句)的条数 C.算法的有穷性是指算法必须能在执行有限个步 骤之后终止 D.以上三种描述都不对。
head data next
2013年7月24日星期三
data next
data NULL
19
主讲:辽宁科技大学 软件学院 计算中心 刘俊
考点5:线性表的链式存储结构
3.线性链表的基本运算 ①线性链表的插入 首先要给新元素分配新结点p,并赋值 然后找到待插入位置的前一个结点的指针q 先将p指向q的后件,然后将p挂接在q结点后面 ②线性链表的删除 首先前一个结点p,用另一指针q保存p的后续结点 然后把q结点的后续链挂接在p的后面 最后归还q结点所分配的栈空间 ③线性链表的查找 从头指针指向的结点开始向后沿指针扫描,直到 后面已没有结点或搜索到为止
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 8
考点2:数据结构
3.数据的逻辑结构 ①概念:所谓数据的逻辑结构,是指反映数据元素 之间逻辑关系的数据结构。 ②表示方法 二元关系表示 逻辑结构二要素 一是数据元素的集合,通常记为D 二是D上的关系,它反映了D中各数据元素之 间的前后件关系,通常记为R 一个数据结构可以表示成:B = (D, R) 其中B表示数据结构。为了反映D中各数据元素 之间的前后件关系,一般用二元组来表示。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 18
考点5:线性表的链式存储结构
2.线性链表(单链表) ①概念 所谓线性链表就是链式存储的线性表 其结点中只含有一个指针域,用来指出其后继结 点的存储位置 线性链表的最后一个结点无后继结点,它的指针 域为空(记为NULL或^)。 ②表头指针:另外还要设置表头指针head,指向线 性链表的第一个结点。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 3
考点1:算法
3.算法设计基本方法 ①列举法:解决“是否存在”或“有多少种可能” 等类型问题 ②归纳法 ③递推 ④递归 直接递归 间接递归 ⑤减半递推技术 ⑥回溯法 归纳总结:一个算法一般都可以用顺序、选择、循 环三种基本控制结构组合而成
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 14
考点4:线性表的顺序存储
1.线性表的基本概念 ①线性表是由n(n>=0)个类型相同的数据元素组成的 有限序列,记为(a1,a2,a3,…,an),如一年四季 ②线性表中数据元素的个数n为线性表的长度,n=0 的表称为空表 ③当n>0时,线性表的每个数据元素Ai的位置称为Ai 在线性表中的位序 ④每个元素的具体含义在不同情况下各不相同,它 可以是一个数或一个符号,书的一页,也可以是诸 如航班信息表中的某一行 ⑤复杂线性表的每一个数据元素由若干个数据项组 成,常称这样的数据元素为记录
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 13
考点3:线性结构与非线性结构
1.划分标准:根据前后件关系的复杂程度划分 ①若一个非空的数据结构满足两个条件: 有且只有一个根结点; 每个结点最多有一个前件,也最多有一个后件, 称该数据结构为线性结构,又称线性表。 在线性结构中插入或删除结点后还是线性结构。 ②若一个数据结构不是线性结构,称为非线性结构 2.“线性/非线性结构”与“顺序/链式结构”的关系 ①线性的顺序存储结构 ②线性的链式存储结构 ③非线性的顺序存储结构 ④非线性的链式存储结构
算法与数据结构
2013年7月24日星期三
主讲:辽宁科技大学 软件学院 计算中心 刘俊
1
算法与数据结构考点
考点1:算法 考点2:数据结构 考点3:线性结构与非线性结构 考点4:线性表的顺序存储 考点5:线性表的链式存储 考点6:栈和队列 考点7:树与二叉树 考点8:查找技术 考点9:排序技术
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 9
考点2:数据结构
3.数据的逻辑结构(续) ②表示方法(续) 例如,一年四季的数据结构可以表示成: B = (D, R) D = {春, 夏, 秋, 冬} R = {(春, 夏), (夏, 秋), (秋, 冬)} 图形表示:集合、线性、树、图
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 12
考点2:数据结构
2.选择题(续) 数据的存储结构是指( ) A.存储在外存中的数据 B.数据所占的存储空间量 C.数据在计算机中的顺序存储方式 D.数据的逻辑结构在计算机中的表示 下列叙述中正确的是( ) A.一个逻辑数据结构只能有一种存储结构 B.逻辑结构属于线性的,存储结构属于非线性的 C.链式存储结构比顺序存储结构节省存储空间 D.一个逻辑数据结构可以有多种存储结构,且各 种存储结构影响数据处理的效率
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 7
考点2:数据结构
2.基本概念(续) ③数据项:具有独立意义的最小数据单位。有时一 个数据元素由若干个数据项组成,此时,将数据元 素称为记录,由记录所组成的线性表称为文件。 ④数据对象:具有相同特性的数据元素的集合,是 数据的子集。 ⑤结构:指数据元素之间的前后件关系。 ⑥数据结构:指相互关联的数据元素的集合。 一是表示数据元素的信息 二是具在有相同特征的数据元素集合中, 各数据 元素之间存在反映集合中数据元素固有结构的某 种关系。一般使用前后件关系来描述。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 6
考点2:数据结构
1.研究内容:主要研究数据的逻辑结构、数据的存储结 构、对各种数据结构进行的运算 ①数据集合中各数据元素之间所固有的逻辑关系, 即数据的逻辑结构; ②在对数据进行处理时, 各数据元素在计算机中的 存储关系,即数据的存储结构。 ③逻辑结构和存储结构的区别 2.基本概念 ①数据:描述客观事物的数、字符以及所有能输入 到计算机中并被程序加工处理的符号的集合。 ②数据元素:数据的基本单位,即数据集合中的个 体。例如描述一年四季的季节名春、夏、秋、冬。
归纳总结:数据元素之间的前后件关系是指它们的 逻辑关系,与它们在计算机中的存储位置无关。因 此,上述的数据结构实际上是数据的逻辑结构。
2013年7月24日星期三 主讲:辽宁科技大学 软件学院 计算中心 刘俊 10
考点2:数据结构
4.数据的储存结构 ①概念:数据的逻辑结构在计算机存储空间的存பைடு நூலகம் 形式称为数据的存储结构。 ②存储形式: 数据元素之间的关系的表示方法: 顺序映像→顺序存储结构 非顺序映像→链式存储结构 顺序映像借助元素在存储器中的相对位置来表示 非顺序映像借助指示元素存储地址的指针来表示 数据元素在计算机存储空间中的位置关系可能与 逻辑关系不同,逻辑结构可以表示成多种存储结 构。存储结构不同,数据处理的效率也不同。