数据结构简介
维基百科:数据结构是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最有效率的算法。
数据结构:涵盖(1)数据对象(2)其组织方式[逻辑存储、物理存储](3)操作集(4)实现操作的最高效算法
解决问题的效率与数据的组织方式有关,跟空间利用效率有关,也与算法的巧妙程度有关。
“数据结构”包括数据对象集以及它们在计算机中的组织方式,即它们的逻辑结构和物理存储结构,同时还包括与数据对象集相关联的操作集,以及实现这些操作的最高效的算法。抽象数据类型是用来描述数据结构的重要工具。
“算法”是解决问题步骤的有限集合,通常用某一种计算机语言进行伪码描述。我们用时间复杂度和空间复杂度来衡量算法的优劣,用渐进表示法分析算法复杂度的增长趋势。
线性结构
数据的组织方式:(1)逻辑结构:线性、树、图 (2)物理存储结构:数组、链表
线性表:是由同一类型的数据元素构成的有序序列的线性结构
线性表:顺序存储实现;链式存储实现
广义表:是线性表的推广,元素不仅可以是单元素也可以是另一个广义表;多重链表:存在结点属于多个链的链表,指针域会有多个(双向链表不是多重链表)。
堆栈:具有一定约束的线性表,插入和删除操作都作用在一个称为栈顶的端点位置。
队列:具有一定操作约束的线性表,只能在一端插入,而在另一端删除。
树
二叉树:斜二叉树、完美二叉树、完全二叉树
二叉树遍历:先序、中序、后序和层序遍历
使用堆栈将递归算法转化为非递归。
二叉搜索树:左小右大的二叉树
平衡二叉树:AVL树(平衡二叉树)的插入、删除、查找操作均可在O(logN)时间内完成。
堆:是特殊的队列,从堆中取出元素是依照元素的优先级大小,而不是元素进入队列的先后顺序。
哈夫曼树:又称为最优二叉树,也就是带权路径长度最小的二叉树。
图
树的关系也叫做一对多的关系,而图表示多对多的关系。图的结构是任意两个数据对象之间都可能存在某种特定关系的数据结构。G=(V,E)
图的存储结构:邻接矩阵,邻接表。
图的遍历:(1)深度优先搜索(DFS),类似于树的先序遍历;(2)广度优先搜索(BFS),类似于树的层次遍历。
最小生成树(MST):如果无向连通图是一个网图,那么,它的所有生成树中必定有一棵边的权值总和最小的生成树,我们称这棵生成树为最小生成树。
构造最小生成树的方法:普利姆(Prim)算法和克鲁斯卡尔(Kruskal)算法。
散列查找
排序
来源:CSDN
作者:山药13
链接:https://blog.csdn.net/shanyao13/article/details/104716230