大学计算机基础 第4章.ppt
《大学计算机基础 第4章.ppt》由会员分享,可在线阅读,更多相关《大学计算机基础 第4章.ppt(35页珍藏版)》请在三一办公上搜索。
1、第4章 算法与基本数据结构,基本概念 基本数据结构 查找与排序,基本概念,数据:是对客观事物的符号表示,在计算机科学中是指能输入到计算机中并被计算机存储、加工的符号总称。,数据结构的定义,数据元素:是数据的基本单位,由若干个数据项组成,在程序中作为一个整体而加以考虑和处理。数据元素具有完整确定的实际意义,有时也称为元素、结点、顶点或记录,结构:是数据元素之间的关联关系,数据结构:数据结构带有结构的同性质数据元素的集合,数据结构包括以下三方面内容:逻辑结构、存储结构、和对数据的操作 逻辑结构:数据元素之间逻辑上的关系,它是数据的组织形式。通常将数据的逻辑结构简称为数据结构,数据的逻辑结构分两大类
2、:线性结构和非线性结构。具体可分为四类:集合 线性结构 树型结构 图状结构 其中、为非线性结构,基本概念,数据结构的内容,存储结构:数据元素以及数据元素之间的逻辑关系在计算机内存中的表示。一般地,一个存储结构包括以下两个主要部分:,基本概念,数据结构的内容,存储结点(简称结点),每个结点存放一个数据元素 数据元素之间关系的表示,也就是逻辑结构的计算机内部表示常用的数据存储结构:顺序存储方法链式存储方法索引存储方法散列存储方法数据的运算如查找、排序、增加、修改、删除,算法:算法是对具体问题求解过程和步骤的一种描述,基本概念,算法,算法的5个特性:有穷性 确定性 可行性 零个或多个的输入 有1个或
3、多个的输出算法设计的要求:正确性 可读性 健壮性 效率与低存储量需求,效率是指一个算法在计算机上运行所花费的时间,以时间复杂度来衡量。所谓时间复杂度是指算法中所包含简单操作的执行次数。存储量需求指算法执行过程中所需要占用存储器的存储空间,以空间复杂度来衡量。时间复杂度:T(n)=O(f(n)其中的f(n)一般是算法中频度最大的语句频度,与问题的规模n有关。常见的时间复杂度,按数量级递增排列依次为:O(1)O(log2n)O(n)O(nlog2n)O(n2)O(n3)O(nk)O(2n),基本概念,算法,算法的描述用自然语言表示算法:就是用人们所熟悉的自然语言把算法的各个步骤依次表示出来。用流程
4、图表示算法:就是用一些大家共识的专用图形符号和带有箭头的流程线来表示算法。用程序设计语言表示算法:用计算机能理解和执行的程序设计语言把算法表示出来,然后把程序输入计算机并执行,计算机才能按照预定的算法去解决问题。,基本概念,算法,基本数据结构,线性表:是n(nO)个同类型数据元素(结点)的有穷序列。其中数据元素的个数n称为线性表的长度(简称表长)。表长为O的线性表称为空表。表示成:(a1,a2,an),线性表的定义和基本特征,线性表,线性表逻辑结构的基本特征:存在惟一的一个被称为“第一个”的数据元素和惟一的一个被称为“最后一个”的数据元素;除第一个数据元素外,其他数据元素有且仅有一个直接前趋元
5、素;除最后一个数据元素外,其他数据元素有且仅有一个直接后继元素。,顺序表是用一组地址连续的存储单元依次存储线性表的各个数据元素。,特点:逻辑结构中相邻的结点在存储结构中仍相邻,基本数据结构,线性表的顺序存储结构,线性表,顺序表,在顺序表上实现插入和删除运算必须移动结点才能够反映出结点间逻辑关系的变化(1)插入:在表的第i(1in+1)个位置上,插入一个新结点x,使线性表的长度加1。基本步骤为:将结点aian各后移一个位置,以便空出第i个位置;将新结点x置入第i个位置;表长加l,基本数据结构,插入、删除运算在顺序表上的实现,线性表,(2)删除:将表的第i(1in)个结点删去,使线性表的长度减1。
6、基本步骤为:结点ai+1an依次前移一个位置(覆盖被删结点ai);表长减1,基本数据结构,插入、删除运算在顺序表上的实现,线性表,单链表是用一组任意的存储单元来存放线性表的结点。单链表的结点(每个存储单元)由数据域(data)和指针域(next)两部分组成;数据域用于存储线性表一个数据元素;指针域用于存放一个指针,该指针指向其直接后继结点。这样,所有结点通过指针链接起来,因此链表中结点的逻辑次序和物理次序不一定相同,特点:指针为数据元素之间的逻辑关系的映像,基本数据结构,线性表的链式存储结构,线性表,单链表,循环链表是一种首尾相接的链表,双向链表,就是在单链表的每个结点里再增加一个指向其直接前
7、趋的指针域prior,这样形成的链表就有两条不同方向的链。双(向)循环链表:头尾相链接的双向链表,基本数据结构,线性表的链式存储结构,线性表,其他链表,(1)插入:基本步骤如下:在单链表上找到插入位置;生成一个值为x的新结点;将新结点插入 假定指针p指向单链表中的第i-1个结点,s指向已生成的新结点,在单链表上插入结点s的操作过程如图所示。基本操作语句为:s-next=p-next;p-next=s;,基本数据结构,插入、删除运算在单链表上的实现,线性表,(2)删除:基本步骤如下:找到第i个结点;从单链表上摘除该结点。假定指针p指向待删结点的前一个结点,q指向待删结点,删除操作用c语言描述如下
8、:p-next=q-next;free(q);执行free(q)的结果是释放q所指结点占用的内存空间。若在删除算法中无此语句,则结点q虽已不在单链表上,但仍被用户程序闲置性占用。,基本数据结构,线性表,插入、删除运算在单链表上的实现,栈和队列都是操作受限的线性表,基本数据结构,栈和队列,栈的逻辑结构和线性表相同,但是,栈(Stack)是仅限在表的一端进行插入和删除运算的线性表,通常称插入、删除这一端为栈顶,另一端称为栈底,表中无元素时为空栈,栈,栈的运算原则是“先进后出”插入运算称为进栈(或入栈)删除运算称为退栈(或出栈)基本运算为:入栈、出栈、取栈顶元素,栈,顺序栈的进栈运算 将入栈元素放入
9、到栈顶下标所指的位置上,栈顶下标加l 顺序栈的退栈运算 退栈先将栈顶下标减1,再将栈顶元素取出,基本数据结构,栈和队列,队列,队列(Queue),两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(real),允许插入的一端称为队头(Front)。,基本数据结构,栈和队列,队列的操作原则是先进先出队列的顺序存储一般采用循环队列。把队列设想成一个循环表,即设想数组首尾相连。这种存储结构称为循环队。通常front指向队头元素的前一个位置,real指向队尾元素,树是n(n0)个结点的有限集合。在任意一棵非空树中:有且仅有一个特定的称为根的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机基础 第4章 大学计算机 基础

链接地址:https://www.31ppt.com/p-6563647.html