ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:43KB ,
资源ID:2261510      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2261510.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(关于数据结构的泛谈.doc)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

关于数据结构的泛谈.doc

1、 关于数据结构的泛谈1. 数据结构狭义:数据结构是专门研究数据存储问题的数据的存储包含两个方面:个体的存储 + 个体关系的存储从某个角度而言,数据存储最核心的问题是对个体关系的存储,个体的存储可以忽略不计广义:数据结构既包含数据的存储也包含对数据的操作对存储的数据的操作就是算法2. 算法狭义:算法和数据的存储方式密切相关广义:算法和数据的存储结构无关(也就是泛型的思想:对于同一种逻辑结构,无论该逻辑结构的物理存储是什么样子的,我们都可以对它执行相同的操作)3. 数据结构的分类逻辑结构线性数组链表栈和队列是特殊的线性结构(操作受限)非线性树图物理结构线性一维的连续单元(内存)4. 数据的存储结构

2、线性连续存储(数组)优点存取速度很快缺点插入、删除操作效率很低事先必须知道数组的长度需要大块连续的内存块离散存储(链表)优点空间没有限制(不需要一块连续的内存)插入、删除操作效率很高缺点存取速度很慢线性结构的应用 1 栈定义一种可以实现“先进后出”的存储结构分类静态栈动态栈算法出栈压栈应用函数调用(函数的嵌套)中断表达式求值内存分配缓冲处理迷宫线性结构的应用 2 队列定义一种可以实现“先进先出”的存储结构分类链式队列用链表实现静态队列用数组实现,静态队列通常都是循环队列算法入队出队具体应用所有和时间有关的操作都有队列的影子【专题】递归定义一个函数自己直接或间接调用自己栈与递归的实现1. 当在一

3、个函数运行期间,调用另一个函数时,在运行被调函数之前,系统需要完成 3 件事:将所有实参、返回地址等信息传给被调函数保存给被调函数的局部变量(包括形参)分配存储区域将控制转移到被调函数的入口2. 从被调函数返回调用函数之前,系统也需要完成 3 件工作:保存被调函数的返回结果释放被调函数所占的存储空间依照被调函数保存的返回值地址,将控制转移给调用函数PS:当多个函数迭代调用时,按照“后调用先返回”(后进先出)的规则进行,上述函数之间的传递和控制转移必须借助栈来实现,所以,系统将整个程序运行所需的存储区域安排在一个栈中,每当调用一个函数时,就为它在栈顶分配一个存储区域,每当从一个函数退出时,就释放

4、它的存储区域,则当前运行的函数的数据区域必须在栈顶。3. 递归需要满足的 3 个条件1) 递归必须要有一个明确的终止条件2) 该函数所处理的数据规模必须在递减3) 这个转化必须是可解的4. 循环和递归的关系所有的循环都可以转化成递归,但用递归可以解决的问题不一定能用循环解决递归易于理解速度慢所需存储空间大循环不易理解速度快所需存储空间小例子求阶乘求 1+ 2 + 3 + 4 + + 100 的和汉诺塔问题走迷宫应用树和森林就是以递归方式定义的树和图的很多算法都是用递归来实现的很多数学公式就是以递归的方式定义的(如斐波那契数列)非线性树定义专业定义(递归定义)1. 有且只有一个称为根的节点2.

5、有若干个互不相交的子树,这些子树本身也是一棵树通俗定义1. 树由节点和边组成2. 每个节点只有一个父节点,但可以有多个子节点3. 但有一个节点例外,该节点没有父节点,该节点称为根节点专业术语深度从根节点到最底层节点的层数称为深度(根节点是第一层)度某一节点的度是该节点下子节点的个数分类一般树任意一个节点的子节点的个数都不受限制二叉树任意一个节点的子节点的个数最多两个,且子节点的位置不可更改分类一般二叉树满二叉树在不增加树的层数的前提下,无法再添加一个节点的二叉树完全二叉树如果只删除了满二叉树最底层最右边的连续若干个节点,这样形成的二叉树就是完全二叉树森林n 个互不相交的 树的集合存储二叉树的存

6、储连续存储(完全二叉树,把一般二叉树补成完全二叉树)优点查找某个节点的父节点和子节点(判断有没有父、子节点)速度很快缺点耗用内存空间过大链式存储一般树的存储双亲表示法(数组)孩子表示法(边链表)双亲孩子表示法(数组加边链表)二叉树表示法(把一般树转换成二叉树来存储)森林的存储先把森林转换为二叉树,再存储二叉树操作遍历(遍历实质上是把非线性结构转化为线性结构的一种方式,以下三种遍历是三种不同的转化方式,并没有本质区别)先序遍历(根、左、右)中序遍历(左、根、右)后序遍历(左、右、根)已知两种遍历序列,求原始二叉树(已知任意一种序列不能推出原始二叉树,已知先中或者中后可以推出,已知先后不行)具体方

7、法参见视频 71、72 两节,在此不加详述应用树是数据库中数据组织的一种重要形式操作系统子、父进程的关系本身就是一棵树面向对象语言中类的继承关系本身就是一棵树赫(哈)夫曼树图(略)5. 排序排序冒泡排序(相邻位置比较交换,每趟找出一个)插入排序(2 和 1 比插入形成长度为 2 的序列 A,3 和比插入形成长度为的序列,直至结束)选择排序(找出最大(小)的,与第一个位置的元素互换,在找出剩余元素中最大(小)的,与第二个位置的元素互换,直至结束)快速排序(先找出某一元素(一般取第一个元素)的最终位置,这时无序数列被分为两块,再分别对两块继续这样进行排序(递归),直至分成的两块长度为)示例:,-,

8、(需要两个指针、和一个中间变量 temp = 9(第一个元素) ,假定指向,指向,先比较 H 所指向值与temp, H 值大则向前移动 H,直至 H 值小于 temp 时赋值:L 值 = H 值,H 值视为垃圾数字,用“ * ”表示,若 H 值始终大于temp,则当 L 与 H 指向同一元素时一趟排序停止)第一步:,,-,,(7 ,-,(0 temp,赋值:H 值 = L 值,下一步移动 H)第三步:,,-,,(13 temp,移动 H,2 ,(-5 temp,移动 L,L 与 H 重合,得到 temp 的最终位置,赋值:L 值(H 值) = temp,一趟排序结束)PS:上述结果是一趟排序的结果(一趟结束条件:L 与 H 重合) ,下一趟对 7,0,8,2,-5 用同样的方法排序(递归) ,下下一趟对 13,10 排序,直至所有待排序的无序列长度为 1 时,排序完成。H 与 L 的移动规则:(本次)谁变(下一次)移谁归并排序(个个比,个个比,个个比,直至结束)排序和查找的关系排序是查找的前提(也就是说排序是重点)

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报