数据结构学习报告.docx

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法朱春山2016.3.26第一章 概念顺序表:顺序表是在计算机内存中以/view/209670.htm数组的形式保存的线性表,是指用一组地址连续的/view/1223079.htm存储单元依次存储/view/38785.htm数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。栈:后进先出的线性表,只在表尾进行删除和插入操作。 队列:队列是一种特殊的/view/178622.htm线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。链表:链表即链式存储结构,链表是一种物理/view/1223079.htm存储单元上非连续、非顺序的/view/2820182.htm存储结构,/view/38785.htm数据元素的逻辑顺序是通过链表中的/view/159417.htm指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了/view/209670.htm数组随机读取的优点,同时链表由于增加了结点的/view/159417.htm指针域,空间开销比较大。链表最明显的好处就是,常规/view/209670.htm数组排列关联项目的方式可能不同于这些数据项目在/view/167750.htm记忆体或/view/157418.htm磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。链表允许插入和移除表上任意位置上的/view/47398.htm节点,但是不允许/view/3049530.htm随机存取。链表有很多种不同的类型:/view/2073053.htm单向链表,/view/1627720.htm双向链表以及/view/178643.htm循环链表。 适配器:以某种既有容器作为底部结构,定义新接口,以满足某种特殊用途的容器。 链栈:用链表类模板List作为底部结构,插入和删除都在链表一端的适配器。 链队列:用链表类模板List作为底部结构,插入在链表一端,删除在链表另一端的适配器。 优先级链队列:以优先级最高的元素为出队元素的队列。 二叉树:二叉树(B树)是具有n(n>=0)个结点的集合,每个结点最多有一个前驱,两个后继。只有一个结点无前驱,这个结点称为根。没有后继的结点称为叶子。叶子以外的结点称为分支结点。一个结点的后继称为该结点的孩子,孩子又分为左孩子与右孩子。一个结点的前驱称为该结点的双亲。特殊二叉树:(1)若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有/view/2335663.htm叶子结点,并且叶子结点都是从左到右依次排布,这就是/view/427107.htm完全二叉树。(2)除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。 二叉树基本性质:(1) 二叉树第i层上的结点数目最多为2i; (2) 深度为k的二叉树至多有2k+1-1个结点; (3) 具有n个结点的完全二叉树其深度为[log2n]。 二叉树的存储结构:顺序存储结构和链式存储结构。顺序存储可以转换成链式存储。 二叉树的层次遍历:出队之前访问和出队之后访问。 二叉树的遍历顺序:(1)先序遍历:首先访问根,再先序遍历左(右)子树,最后先序遍历右(左)子树。 (2)中序遍历:首先中序遍历左(右)子树,再访问根,最后中序遍历右(左)子树 (3)后序遍历:首先后序遍历左(右)子树,再后序遍历右(左)子树,最后访问根。堆:堆是一种按照层次顺序连续存储的、特殊的二叉树,一般分大根堆和小根堆。小根堆的特点是每一个结点的键都不大于其左右孩子的键;大根堆的特点是每一个结点的键都不小于其左右孩子的键。 树:树是具有n(n>=0)个结点的集合,每个结点最多有一个前驱,可以有多个后继。只有一个结点无前驱,这个结点称为根。没有后继的结点称为叶子。叶子以外的非根结点称为分支结点。一个结点的后继称为该结点的孩子,孩子不分顺序。一个结点的前驱称为该结点的双亲。 树的表示法:广义表示法、双亲表示法、左孩子—右兄弟表示法和孩子链表示法。 树的遍历主要有广度优先遍历、深度优先遍历和后根遍历。 广度优先遍历:从树的第一层开始,逐层的、从左至右逐个访问结点。 深度优先遍历:(1)访问根结点; (2)依次深度优先遍历以该结点的孩子为根。 图:由有穷、非空点集和边集合组成,简写成G(V,E);无向图:图中每条边都没有方向;有向图:图中每条边都有方向;无向边:边是没有方向的,写为(a,b)有向边:边是有方向的,写为<a,b>有向边也成为弧;开始顶点称为弧尾,

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档