基本数据结构和算法.ppt





《基本数据结构和算法.ppt》由会员分享,可在线阅读,更多相关《基本数据结构和算法.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识公共基础知识(二级)基本数据结构和算法主讲人:张炎欣主讲人:张炎欣全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识笔试考试题型一、选择题(每小题2分,共70分)二、填空题(每小题2分,共30分)公共基础知识 占10道选择题,5道填空题,共占30分.全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识数据结构概论考核知识点数据结构的基本概念算法的基本概念线性表的定义栈和队列线性链表循环链表树的基本概念查找技术排序技术全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识数
2、据结构概论重要考点提示数据结构的基本概念;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构算法的基本概念;算法复杂度的概念和意义(时间复杂度和空间复杂度)线性表的定义;线性表的顺序存储结构及其插入与删除运算栈和队列的定义;栈和队列的顺序存储结构及其基本运算线性链表、双向链表与循环链表的结构及其基本运算树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序、后序遍历顺序查找与二分法查找算法基本排序算法(交换类排序、选择类排序、插入类排序)全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识一、数据结构概论1.数据、数据元素和数据项的概念2.数据结构的概念定
3、义:由逻辑结构S、基本运算集 和存储实现D所构成的整体(S,D)。构成:包括逻辑结构和基本运算两部分。3.数据的逻辑结构定义:是指数据元素之间逻辑关系的整体。是数据的组织形式。四类基本逻辑结构:集合、线性结构、树型结构、图状结构(逻辑结构的图形表示)非线性结构全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识一、数据结构概论4.数据的存储结构定义:数据按逻辑结构规定的关系在计算机存储器中的存放方式(也称物理结构)。存储结构的三个主要部分:存储结点:每个结点存储一个数据元素数据元素间关联方式的表示,即逻辑结构的计算机内部表示。附加设施,如为便于运算实现而设置的“哑结点”等。存
4、储结点之间可以有四种关联方式(称为基本存储方式)顺序存储/链式存储/索引存储/散列存储全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识二、算法及其描述重点提示算法的基本概念算法设计的要求算法复杂度的概念和意义(时间复杂度和空间复杂度)全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识二、算法及其描述1.算法的基本概念定义:求解给定类型问题所需的所有“处理步骤”及其执行顺序,使得给定类型的任何问题能通过有限的指令序列、在有限的时间内被求解。算法的5个特性:1)有穷性2)确定性3)可行性4)输入5)输出全国计算机等级考试培训全国计算机等级考试培训-公共基础
5、知识公共基础知识二、算法及其描述2.算法设计的要求1)正确性2)可读性3)健壮性4)效率与低存储量需求3.算法的描述可以用自然语言,也可用计算机程序设计语言全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识二、算法及其描述4.算法的时间复杂度和空间复杂度时间复杂度:是指执行算法所需要的计算工作量。但有时使用这种绝对时间单位来衡量算法的效率是不合适的,所以又采用最坏情况复杂度和平均时间复杂度。最坏情况时间复杂度:是指在规模为n时,算法所执行的基本运算次数。平均时间复杂度:各种特定输入下的基本运算次数的加权平均值空间复杂度:指执行这个算法所需要占用存储空间的大小。算法好坏比较:
6、当问题规模n趋于无穷大时所需时间小的算法好(P5例)。全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识三、线性表重点提示线性结构的定义与特征线性表的定义线性表的顺序存储实现顺序表顺序表上插入与删除元素的运算全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识三、线性表1.线性结构与线性表的概念1)线性结构:定义:是n(n=0)个数据元素(结点)的有穷序列。说明:同一线性结构中的元素必定具有相同特性,相邻数据元素之间存在着序偶关系。描述:将含n(n0)个结点的线性结构表示成(a1,ai-1,ai,ai+1,an)。)。其中其中ai(0i=n)代表一个结点,
7、a1 称为起始结点,an称为终端结点。“i”称为ai在线性表中的序号或位置。对任意一对相邻结点,ai称为ai+1的直接前趋元素,ai+1称为ai的直接后断元素。全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识三、线性表1.线性结构与线性表的概念2)线性结构的基本特征存在惟一的一个被称为“第一个”的数据元素存在惟一的一个被称为“最后一个”的数据元素除起始结点外,其他结点有且仅有一个直接前趋;除终端结点外,其他结点有且仅有一个直接后继;3)线性表的概念定义:线性表的逻辑结构是线性结构线性表的长度:指所含结点的个数。表长为0的表称为空表。全国计算机等级考试培训全国计算机等级考试
8、培训-公共基础知识公共基础知识三、线性表2.线性表的顺序存储结构顺序表顺序表:即用一组地址连续的存储单元依次存储线性表的数据元素。顺序表的特点:逻辑结构中相邻的结点在存储结构中仍相邻。顺序表的容量:指线性表实际达到的最大长度;表长指当前表的长度,表长小于或等于表的容量。3.插入、删除运算在顺序表上的实现1)插入2)删除全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识四、线性单链表、双向链表与循环链表的结构及其基本运算重点提示线性表的链式存储结构单链表,在单链表上插入与删除结点的操作双向链表与循环链表的结构在双向链表中插入与删除结点的基本操作全国计算机等级考试培训全国计算机
9、等级考试培训-公共基础知识公共基础知识1.线性表的链式存储结构单链表单链表表示法的基本思想是用指针表示结点间的逻辑关系。结点形式为:所有结点通过指针的链接而组织成单链表。2.插入、册除运算在单链表上的实现1)插入:INSERT(L,x,i)在单链表上找到插入位置生成一个值为X的新结点将新结点链入C语言描述:s-next=p-next;p-next=s;四、线性单链表、双向链表与循环链表next(指针域)data(数据域)a1a2an Lb插入前abax插入后pps本结点的指针是p-next全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识四、线性单链表、双向链表与循环链表2
10、.插入、册除运算在单链表上的实现2)删除的实现DELETE(L,i):找到第i个结点从单链表上摘除该结点(即改变指针域的指向)bacC语言的描述:p-next=q-next;Free(q);pq本结点的指针是q-next全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识四、线性单链表、双向链表与循环链表3.循环链表和双链表1)循环链表:与单链表的差别仅仅在于其尾结点指向与单链表的差别仅仅在于其尾结点指向头结点。头结点。判断循环链表是否为空表的条件是它们是否等于头指针。即 L-next=La1a2anL2)双链表:双链表的结点中有一个数据域和两个指针域特点:容易查找前趋与后继
11、data(数据域)prior(指向前驱)prior(指向后继)空单循环链表全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识四、线性单链表、双向链表与循环链表3.循环链表和双链表2)双链表:双向链表的结构:a1a2anL双链表的插入与删除:baxbca ppqs-next=p-next p-next-prior=ss-next=p-next p-next-prior=sp-next=s s-prior=pp-next=s s-prior=p s q-next=p-next q-next=p-next p-next-prior=qp-next-prior=q本结点的指针是p-
12、next,即结点p的后继域指针p-next,所以本结点的前趋指针为:p-next-prior请注意指针修改先后次序。全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识五、栈和队列q栈和队列都是线性表,从数据结构角度看,也是线性表,是操作受限的线性表,也称限定性数据结构。1.栈的定义v定义:栈是种“特殊的”线性表,其插入和删除操作限定在表的某一端进行。v几个名词:栈顶、栈底、进栈、退栈v运算原则:“先进后出”(或“后进先出”)2.栈的顺序实现1)顺序栈的定义:栈的顺序存储结构称为顺序栈。v“上溢”:当顺序栈的状态为栈满时,再有进栈v“下溢”:顺序栈为空时,如果做退栈运算。a1
13、a2an出栈进栈栈顶栈底一般由一维数组和记录栈项位置变量组成全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识五、栈和队列2.栈的顺序实现2)顺序栈的进栈和退栈运算v进栈:栈顶下标加1 将入栈元素放到新的栈顶下标所指位置v退栈:退栈先要将栈顶元素取出,由参数返回,并将栈顶下标减13.队列的定义v定义:队列(简称队)是只允许在一端删除,在另一端插入的顺序表。允许插入的一端称队尾,允许删除的一端称队头。v队列又称先进先出线性表a1 a2 a3 an出队列入队列全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识五、栈和队列4.队列的顺序实现1)顺序队的组织方法
14、,顺序队上的“假溢出”及其原因v队列的顺序实现称为顺序队,它由一个一维数组及两个分别指示队头和队尾的变量组成。v当前尾指针等于数组的上界,即使队列不满,再做入队操作也会导致溢出,这种现象称“假溢出”4 3 2 1 0队尾队头4 3 2 1 0队尾abc队头4 3 2 1 0队尾c队头4 3 2 1 0队尾队头de空队 a,b,c相继入队 删除a,b d,e入队后又删除c全国计算机等级考试培训全国计算机等级考试培训-公共基础知识公共基础知识五、栈和队列4.队列的顺序实现2)循环队列的组织方法及其基本运算v所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。这样只要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 数据结构 算法

限制150内