
数据结构
文章平均质量分 76
本专栏面向没有任何编程基础,或者编程经验很少的朋友们,介绍如何快速高效学习 数据结构 这门基础学科。
AmosTian
计算机科学与技术在读,记录与分享自己的学习心得。学海无涯,知道的越多不知道的越多。
展开
-
【数据结构与算法分析inC-MarkAllen】2-算法分析
算法评价的量化理论:四种渐进增长的定义与理解算法分析的目标与一般法则算法分析的计算方法:循环主体中的变量参与循环条件的判断:斐波那契数列;阶乘计算(模拟法优化递归)运算时间中的对数:折半查找,欧几里得求最大公约数,快速幂循环主体中的变量与循环条件无关:分治法算法分析,主方法最大子序列和问题空间复杂度随机数序列生成算法多项式计算(Hornor秦九韶算法)判断一个正整数是否为素数:埃氏筛法,欧氏筛法,六素数法原创 2023-05-30 13:03:37 · 891 阅读 · 1 评论 -
树概念+ADT+二叉树实现
树(Tree)是n(n>=0)个节点的有限集。在任意一颗非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,并称为根节点的子树(SubTree)如图:树的概念结点(Degree):包含一个元素及若干指向其子树的结点。结点的度:结点所拥有的子...原创 2018-12-25 22:17:03 · 3713 阅读 · 0 评论 -
栈ADT+实现
目录栈ADT代码顺序栈链式栈栈仅在队尾进行插入或删除操作的线性表【后进后出的线性表】栈顶(Top):线性表表尾栈底(Base):线性表表头ADTADT Stack{ 数据对象:D = {ai|ai∈ElemSet,i = 1,2,...,n, n>= 0} 数据关系:R1 = {<ai-1,ai>|ai-...原创 2018-12-08 17:47:57 · 712 阅读 · 0 评论 -
队列ADT+实现代码
目录队列ADT代码实现链接:https://blog.youkuaiyun.com/qq_29350001/article/details/55261466队列队列是一种先进先出的线性表,他只允许在表的一端进行插入,另一端进行删除队头(front):允许删除的一端队尾(rear):允许插入的一端ADTADT Queue{ 数据对象:D = {ai...原创 2018-12-08 17:55:44 · 907 阅读 · 0 评论 -
数组(矩阵)+ADT+代码实现
目录表中的数据元素本身也是一个数据结构数组ADT矩阵的压缩存储三元组顺序表行逻辑链接的顺序表稀疏矩阵的十字链表表中的数据元素本身也是一个数据结构数组数组中的数据元素必须是同一数据类型一个n维数组可以定义为其数据元素是n-1维数组类型的一维数组类型二维数组任一元素a[ij]存储位置从(0,0)开始存储:LOC(i,j) = LOC(...原创 2018-12-09 16:23:18 · 1357 阅读 · 0 评论 -
线性表-数组+单链表+静态链表+循环链表+循环链表
目录线性表概念ADT线性表的两种存储结构顺序存储结构【顺序映像】链式存储结构线性表n个具有相同特性的(同一数据对象) 数据元素的有限序列(1)存在唯一的一个被称为“第一个”的数据元素(2)存在唯一的一个被称为“最后一个”的数据元素(3)除第一个之外,集合中的每个数据元素只有一个前驱(4)除最后一个外,集合中每个数据元素只有一个后继概...原创 2018-11-16 00:00:50 · 641 阅读 · 0 评论 -
广义表+ADT+C语言实现
广义表线性表的推广(1)表的元素可以是子表,子表的元素还可以是子表(2)列表为其他列表所享有(3)列表可以是一个可以递归的表,即列表可以是其本身的子表广义表一般记作:可以是单个元素,也可以是广义表,分别为广义表LS的原子和子表习惯上,用大写字母表示广义表的名称,用小写字母表示原子。当广义表LS非空时,称第一个元素为LS的表头(Head),称其余元素组...原创 2018-12-14 09:32:31 · 1272 阅读 · 0 评论 -
算法的时间复杂度
算法的时间复杂度定义为:时间复杂度或称时间复杂性,又称计算复杂度,她说是算法有效的度量之一,时间复杂度是一个算法运行时间的相对度量,一个算法的运行时间长短,它大致等于执行一种简单操作所(赋值、比较、计算、转向、返回、输入和输出)需要的时间与算法中进行简单操作次数的乘积。根据定义,求解算法的时间复杂度的具体步骤是:⑴找出算法中的基本语句; 一般算法中执行次数最多的那条语句就是基...原创 2018-08-30 09:54:34 · 7555 阅读 · 0 评论 -
数据结构绪论
目录《一》数据结构概念《二》数据《三》结构数据结构的形式定义为:《四》数据类型《五》抽象数据类型(Abstract Data Type---ADT)一个抽象数据类型的软件模块通常包含定义,表示和实现《六》算法和算法分析《七》知识点图《一》数据结构概念数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。数据结...原创 2018-10-13 22:36:15 · 497 阅读 · 0 评论 -
1-时间复杂度分析
@(Knowledge)[Auspice Vinson]文章目录概念函数渐进增长大O记法最坏情况时间复杂度排序非函数调用函数调用计算方法循环主体中的变量参与循环条件的判断运算时间中的对数折半查找欧几里得算法幂运算循环主体中的变量与循环条件无关非递归程序递归程序——分治策略递归程序四条准则“分治”策略`eg`常见算法时间复杂度总结最大子序列和问题的解遍历所有子串,对子串的子序列依次求和记录中间累加量分治法最简概念算法的渐进时间复杂度,简称时间复杂度分为 事后分析 和 事前分析 两种事前分原创 2020-07-20 00:32:44 · 869 阅读 · 0 评论 -
数据结构——绪论、时间复杂度
绪论- 数据类型- 数据结构- 算法时间复杂度:- 大O记法- 时间复杂度排序- 简单时间复杂度分析与例子- 常见算法复杂度总结- 最大子序列和问题的解空间复杂度- 原地工作原创 2022-08-20 07:57:27 · 501 阅读 · 0 评论 -
数据结构——线性表
线性表是一种逻辑结构基本概念线性表的存储:顺序存储,链式存储(单链表,双链表,循环链表,静态链表),顺序表与链表比较,存储结构选择串:基本概念,存储结构,模式匹配,KMP队列:顺序队列,循环队列,链式队列,双端队列栈:基本概念(卡特兰数),栈的存储结构(顺序栈,链栈),栈的应用,表达式的表示与计算矩阵和广义表:数组,矩阵存储(对称矩阵,三角矩阵,三对角矩阵),稀疏矩阵(十字链表,三元组存储),广义表原创 2022-08-20 08:16:18 · 6449 阅读 · 0 评论 -
数据结构——树
树:基本定义(逻辑结构,层次结构,术语),性质(树第i层结点,树结点与度的关系,结点数与高度的关系),树的存储结构(双亲表示法,孩子表示法,孩子兄弟啊表示法)树的操作(遍历,树,森林,二叉树的转换),数的应用——并查集二叉树:基本概念(五种基本形态),二叉树性质(满二叉树,完全二叉树),二叉树的存储结构,二叉树的遍历(递归框架,先序,中序,后序,层序),线索二叉树二叉树的应用:二叉排序树,平衡二叉树,哈夫曼树红黑树:红黑树性质,红黑树操作(调色,调位),插入原创 2022-08-20 08:39:41 · 7525 阅读 · 0 评论 -
数据结构——图
图的基本概念:度,图的种类:简单度,n个顶点的完全图,子图,连通图,路径,完全图,强连通图图的存储:邻接矩阵,邻接表,邻接多重表,十字链表法图的基本操作图的遍历:广度优先搜索,深度优先搜索,图的遍历与连通性图的应用:最小生成树,最短路径,有向无环图,拓扑排序,关键路径原创 2022-08-20 14:16:21 · 738 阅读 · 0 评论 -
数据结构——查找
查找基本概念:静态查找,动态查找线性结构查找:顺序查找,折半查找,分块查找树形结构查找:二叉排序树(插入,删除,平均查找长度),二叉平衡树,B+,B-树散列结构:散列函数的构造(直接定址法,除留取余法,数字分析法,平方取中法)性能分析,冲突处理(开放定址法,拉链法)平均查找长度:查找成功,查找失败原创 2022-08-20 14:25:40 · 1639 阅读 · 0 评论 -
数据结构——排序
基本概念:分类,稳定性内部排序:总结归纳(时间复杂度,空间复杂度),五大类排序(插入排序,选择排序,交换排序,归并排序,基数排序,桶排序)外部排序:存储空间,过程,时间开销,优化原创 2022-08-20 14:35:29 · 2599 阅读 · 2 评论