前言:
现在朋友们对“算法导论数据结构问题分析报告”可能比较讲究,大家都想要分析一些“算法导论数据结构问题分析报告”的相关文章。那么小编在网络上搜集了一些对于“算法导论数据结构问题分析报告””的相关内容,希望朋友们能喜欢,兄弟们一起来学习一下吧!由于最近忙着学习,好久没有更新了,总结下最近的战果,希望对志同道合的朋友有帮助。
其余章节会持续更新。
后期会把所有算法总结为一篇。敬请期待.....
第一章:概论
数据结构 是计算机组织数据和存储数据的方式。合理的数据结构可以降低程序涉及的复杂性,提高程序执行的效率。
数据以及数据的组织方式称为数据的逻辑结构。
程序=算法+数据结构。
数据:所有被计算机存储、处理的对象。
数据元素:数据的基本单位,是运算的基本单位,简称为元素,数据元素由数据项组成,数据项又称为字段或域,是数据不可分割的最小标识单位。
数据的逻辑结构 数据元素之间的逻辑关系。四种基本的逻辑结构:集合、线性结构、树形结构、图结构。
数据的存储结构 数据的逻辑结构在计算机中的实现(物理结构)包括:存储数据元素,数据元素之间的关系方式。
数据元素之间的联系存储方式由四种:顺序存储、链式存储、索引存储、散列存储。
运算 指在某种数据结构上施加的操作,对逻辑结构的加工。包括:建立、查找、读取、插入和删除。
评价算法好坏的因素:正确性、易读性、健壮性、时空性。
时间复杂度 常见的阶数 常数阶O(1) 对数阶O(log₂n) 线性阶O(n) 多项式阶O(nⁿ) n>=1 指数阶O(2ⁿ) 具有指数阶的算法是实际不可计算的,而阶数低于平方阶的算法是高效的。
第二章:线性表
线性结构 他是由n 大于等于0个数据元素组成的有穷序列,数据元素又称结点,节点个数n代表表长,n=0标识空表。
顺序表 将表的结点依次存放在计算机内存中一组连续的存储单元中,相邻的结点存储位置也相邻。n个元素存放在0-length-1的单元中。
指针变量 是指存放地址的变量,
头指针 指向单链表第一个结点的指针,可以指向单链表中第一个元素的存储位置
头结点 单链表中第一个元素结点之前设置的一个结点。 减少了单链表中添加删除结点时特殊情况的判断,减少了程序的复杂性。
首结点 单链表中第一个元素结点。
顺序表特点:适用于需要大量访问元素而少量增加、删除元素的程序。访问快捷,创建简单,随机查找方便,直接给出下标,排序方便,内存地址连续。
单链表特点:适用于需要大量增加、删除元素操作,而对于访问无要求的程序,内存地址可以不连续,增删方便,长度可以随时变化,查找需要遍历。
第三章:栈、队列和数组
栈 运算受限的线性表,这种线性表示的插入和删除运算限定在表的某一端进行。允许插入和删除的一端称为栈顶,另一端称为栈底。不含任何数据元素的栈称为空栈,处于栈顶位置的数据元素称为栈顶元素。先进后出。
下溢:栈顶下标值top=0,做出栈运算。上溢:栈满 top=maxsize-1 做进栈操作。
队列 是有限同类数据元素的线性序列,先进先出的线性表,新加入的数据元素插在队列的尾端,出队列的数据元素在队列的首部被删除。
循环队列 为了避免元素的移动,可以将存储队列元素的以为数组首位相接,形成一个环状。
判满 (rear+1)% maxsize == front 判空 rear == front
数组 一组具有相同类型的数据元素组成,并存储在一组连续存储单元中。
特殊矩阵 如果值相同的元素或者零元素在矩阵中的分布有一定规律,称为特殊矩阵。矩阵的非零元素很少的矩阵称为稀疏矩阵 用三元组表示法。
第四章:树和二叉树
树 n(大于等于0)个结点的有限集合,一棵树满足条件:1.n=0时称为空树。2.当n>0时,有且仅有一个称为根的结点,除了根之外其余结点为m个互不相交的非空集合,这些集合每个都死一棵树,称为根的子树。
森林 是m棵互不相交的树的集合。
结点的度:树上任一结点所拥有的子树的数目。叶子:度为0的结点称为叶子或者终端结点。树的度:一棵树中所有结点的度的最大值。
结点的层次:从根开始算起,根的层次为1,其余结点的层次为其双亲层次加1;
树的高度:一棵树中所有结点曾次数的最大值。
有序树:若树中各节点的子树从左到右是由次序的,不能互换。
无序树:若树中各个结点的子树是无序的,可以互换的。
二叉树的性质:
1. 二叉树第i层上至多由2的i-1次方个结点。
2. 深度为k的二叉树至多 由2的k次方减1个结点。
3. 对任何一颗二叉树,若度数为0的结点个数为n0 ,度数为2的结点个数为n2,,则n0 = n2+1
4. 含有n个结点的完全二叉树的深度 log2n +1
满二叉树,深度为k 由2的k次方-1个结点。
用于描述分类过程的二叉树称为判定树。
二叉树的存储结构:
顺序存储结构 用一维数组来实现,非完全二叉树可以转化为完全二叉树后进行存储,增加若干个虚拟结点。
链式存储结构 常用二叉链表与三叉链表,二叉链表 若有n个结点 ,则有2n个指针域,其中n-个用来指向左右孩子,n+1个指针为null。
二叉树的遍历:
递归实现遍历 先序遍历 、中序遍历 、后序遍历 层次遍历 可以用一个队列来实现。
非递归遍历实现 先序非递归算法 可以借助栈来实现。
标签: #算法导论数据结构问题分析报告