数据结构
Beyond
本人擅长Ai、Fw、FI、Br、Ae、Pr、Id、Ps、CDR等软件的安装与卸载;
精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、VB、Go、Ruby、Perl、Lisp、python、Objective-C、ActionScript、Pascal、spss、sas等单词的拼写;
熟悉Windows、Linux、Mac、Android、IOS、WP8等系统的开关机。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构——堆排序
堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。在之前的文章中已经介绍过大小顶堆的实现办法,再简单介绍一下。大顶堆小顶堆堆排序堆排序(Heapsort)是指利用堆这种数据结构(后面的【图解数据结构】内容会讲解分析)所设计的一种排序算法。堆积是一个近似完全二叉树的...原创 2019-12-19 13:43:28 · 368 阅读 · 0 评论 -
数据结构——二叉树的遍历
在这里说一下二叉树的三种遍历(前序,中序,后序)正文:前序遍历:是指先从根开始,再依次找寻左子结点、右子结点。学习时的经验就是“看图学习”第一份图:这样看来:1.先找最基本的根结点(词穷),这里是a。2.接着找以a为根结点的左子结点,这里是b。3.而以b为根结点也会出现左右结点,这就又有了一个左结点d,d再连e(d-e)。4.去找以b为根...转载 2019-12-17 18:01:58 · 341 阅读 · 0 评论 -
数据结构——三维数组地址
三维数组A[n][m][k],n,m,k三个分量分别称之为行,列,页。假设A[0][0][0]的存储地址为a,其中每个元素所占内存空间为b,那么计算A[x][y][z]的存储地址的公式为a+(xmk+yk+z)b三位数组按行优先存储在内存空间中的存储方式为:首先将第一行第一列的页存满,再存第一行第二列的页,直到第一行存满后再存下一行。假设以行优先顺序存储三维数组A[5][6...原创 2019-12-17 17:58:35 · 12659 阅读 · 5 评论 -
数据结构——图的邻接表、图的存储结构
要理解基础的话可以下看下b站这位老师的视频数据结构与算法基础--第10周05--6.4图的存储结构5-6.4.2邻接表表示法1-无向图的邻接表下面是一个无向的网图:邻接表中数据的存储图示如下顶点表也就是个结构体数组,是存放顶点的结构,顶点表中有data元素,存放顶点信息firstarc是一个边结构体表指针,存放邻接点的信息。边表也是一个结构体,内有adivex元素...原创 2019-12-16 16:54:26 · 4267 阅读 · 0 评论 -
数据结构——图的关键路径(AOE和AOV网)
一、AOE和AOV网1.AOE网AOE-网:指用边表示活动的网,是一个带权的有向无环图,其中,顶点表示事件弧表示活动,权表示活动持续的时间,通常一个AOE-网可用来估算工程的完成时间。AOE网具有以下几个性质:(1) 只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始;(2) 只有在进入某一顶点的各有向边所代表的活动都已经结束,该顶点所代表的事件才能发生...原创 2019-12-15 20:58:10 · 5052 阅读 · 0 评论 -
数据结构——基于邻接矩阵存储的图的深度优先遍历和广度优先遍历
图的存储结构相比较线性表与树来说就复杂很多,对于线性表来说,是一对一的关系,所以用数组或者链表均可简单存放。树结构是一对多的关系,所以我们要将数组和链表的特性结合在一起才能更好的存放。那么我们的图,是多对多的情况,另外图上的任何一个顶点都可以被看作是第一个顶点,任一顶点的邻接点之间也不存在次序关系。仔细观察以下几张图,然后深刻领悟一下:因为任意两个顶点之间都可能存在联系,因...转载 2019-12-15 17:05:05 · 8183 阅读 · 2 评论 -
数据结构——二叉平衡树AVL平衡调整
给大家推荐个b站的阿婆主讲的平衡调整,非常详细的平衡步骤二叉平衡树AVL平衡调整数据结构学习过了二叉查找树,想必大家有遇到一个问题。例如,将一个数组{1,2,3,4}依次插入树的时候,形成了图1的情况。有建立树与没建立树对于数据的增删查改已经没有了任何帮助,反而增添了维护的成本。而只有建立的树如图2,才能够最大地体现二叉树的优点。 ...原创 2019-12-11 11:22:52 · 1053 阅读 · 0 评论 -
数据结构——有向图和无向图用邻接矩阵储存及代码实现
一般存储图的方式有两种:一是用邻接矩阵表示,二是用邻接链表。所谓用邻接矩阵,是用一个二维数组存储,边使用矩阵来构建模型,这使得每一个顶点和其它顶点之间都有边的有无 的 表示的机会。若有边,则他们交点 为1 ,否则为0。当然,如果是一副边有权值的图,交点存储的是他们边的权值。1、无向图的存储:无向图的边的矩阵一定是一个对称矩阵,因为无向图只关心边是否存在,而不关心方向,V0和V1有边,那么...转载 2019-12-11 11:15:52 · 7543 阅读 · 0 评论 -
数据结构——希尔排序
希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,...原创 2019-12-11 09:09:43 · 544 阅读 · 0 评论 -
数据结构——拉链法(链地址法)
当存储结构是链表时,多采用拉链法,用拉链法处理冲突的办法是:把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。 例如,按上面例9.4所给的关键字序列,用拉链法构造散列表如图9.14所示。 ...转载 2019-12-10 20:54:16 · 11294 阅读 · 1 评论 -
数据结构——B树、B-树、B+树、B*树
B树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左...转载 2019-12-10 17:38:35 · 251 阅读 · 0 评论 -
数据结构——树、森林、二叉树之间的相互转换
树转二叉树二叉树转树森林转二叉树二叉树转森林原创 2019-12-07 17:46:42 · 434 阅读 · 0 评论 -
数据结构——散列表--线性探测法
最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的。现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅。 下面看下2010年2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题中一个考哈希表的题。Question1:将关键字序列(7、8、30、11、18、9、14)散列存储...原创 2019-12-07 16:18:56 · 6181 阅读 · 1 评论 -
大顶堆的建立
二叉树的相关概念:节点:树的基本组成部分,一个含有数据元素的******(不可描述)节点的度:节点拥有的子节点的数量,如一个节点拥有两个子节点,则称该节点的度为2。也就是有几个孩子完全二叉树:所有节点的度都小于等于2的树子节点:节点的子树的根节点称为该节点的子节点,比如,节点8为节点4的子节点。也就是节点8叫节点4爸爸,节点4叫节点2爸爸,那节点8就应该叫节点2爷爷对吧,也是的,也就可以引申出节点8是节点2的子孙节点,父节点:父子关系应该很容易懂吧,比如,节点4是节点8的父节点。兄弟节点:有同转载 2019-12-01 11:03:05 · 918 阅读 · 0 评论 -
快速排序
原理: 快速排序,说白了就是给基准数据找其正确索引位置的过程. 如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾. 首先从后半部分开始,如果扫描到的值大于基准数据就让high减1,如果发现有元素比该基准数据的值小(如上图中18<...转载 2019-12-01 10:58:11 · 160 阅读 · 0 评论
分享