![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 74
天使之裔
这个作者很懒,什么都没留下…
展开
-
外排序
外排序外排序概述磁盘排序生成初始归并段多路平衡归并最佳归并树外排序概述1、什么是外排序外排序是指数据存放在外存中,数据排序时涉及内、外存数据交换的排序方法。存储在外存上的数据以文件为基本单位。2、外排序的基本方法外排序的基本方法是归并排序法。它分为以下两个步骤:(1)生成若干初始归并段(顺串) :这一过程也称为文件预处理。一种常规的方法如下:➊把含有n个记录的文件,按内存大小w分成若干长度为w的子文件(归并段) ;❷分别将各子文件(归并段)调入内存,采用有效的内排序方法排序后送回外存。原创 2020-06-18 00:25:21 · 5149 阅读 · 0 评论 -
各种结构的查找
各种结构的查找查找的概念线性表的查找顺序查找二分查找分块查找二叉排序树平衡二叉树B-树和B+树哈希表的查找查找的概念线性表的定义:查找表:是由一组记录组成的表或文件,而每个记录由若千个数据项组成,并假设每个记录都有一个能唯- -标识该记录的关键字。内查找和外查找:若整个查找过程都在内存进行,则称之为内查找;反之,若查找过程中需要访问外存,则称之为外查找。查找方法的性能指标:查找运算时间主要花费在关键字比较上,通常把查找过程中执行的关键字平均比较次数(也称为平均查找长度)作为衡量一个查找算法效原创 2020-06-13 01:33:36 · 912 阅读 · 0 评论 -
拓扑排序与关键路径
用拓扑排序求关键路径拓扑排序关键路径拓扑排序什么是拓扑排序:设G=(V, E)是一个具有n个顶点的有向图,V中顶点序列v1,v2, … vn,称为一个拓扑序列,当且仅当该顶点序列满足下列条件:若<i, j>是图中的边(或从顶点i到j有一条路径) :则在拓扑序列中顶点i必须排在顶点j之前。在一个有向图中找-一个拓扑序列的过程称为拓扑排序。拓扑排序步骤(1)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它。(2)从图中删去该顶点,并且删去从该顶点发出的全部有向边。原创 2020-06-09 02:41:54 · 1921 阅读 · 0 评论 -
最小生成树和最短路径
最小生成树和最短路径最小生成树普里姆(Pim)算法克鲁斯卡尔(Kruskal)算法最短路径狄克斯特拉(Dijkstra)算法Floyd算法最小生成树生成树概念:一个连通图的生成树是一个极小连通子图,它含有图中全部n个顶点和构成一棵树的(n-1)条边。可以通过遍历方法产生生成树:由深度优先遍历得到的生成树称为深度优先生成树。由广度优先遍历得到的生成树称为广度优先生成树。最小生成树概念:对于带权连通图G (每 条边上的权均为大于零的实数),可能有多棵不同生成树。每棵生 成树的所原创 2020-06-09 01:22:12 · 4474 阅读 · 0 评论 -
图的基本内容
图图的基本术语图的存储结构邻接矩阵邻接表图的遍历深度优先遍历(DFS)广度优先遍历(BFS)非连通图的遍历图的基本术语端点和邻接点无向图:若存在一条边(i, j)中顶点i和顶点j为端点,它们互为邻接点。有向图:若存在一条边<i, j>与顶点i为起始端点(简称为起点) ,顶点j为终止端点(简称终点),它们互为邻接点。顶点的度、入度和出度无向图:以顶点i为端点的边数称为该顶点的度。有向图:以顶点i为终点的入边的数目,称为该顶点的入度。以顶点i为始点的出边的数目,称为该顶点原创 2020-06-05 18:31:21 · 600 阅读 · 0 评论 -
二叉树的基本内容和遍历
二叉树二叉树的性质和特殊二叉树二叉树的遍历先序遍历中序遍历后序遍历二叉树的性质和特殊二叉树重要性质:一个二叉树第i层的最大结点数为:2^(i-1)深度为k的二叉树有最大结点总数为:2^k-1对任何非空的二叉树,若n0表示叶结点个数,n2表示度为2的非叶结点个数,那么满足n0=n2+1链式存储:二叉树的遍历先序遍历中序遍历后序遍历对遍历的总结:所谓的先序,中序,后序都是针对根节点来讲,跟着步骤一步一步分析来就好最后是我们可以通过先序,中序或中序,后序来确定一个树的结构,例原创 2020-05-28 18:21:32 · 200 阅读 · 0 评论 -
二分查找与树
二分查找与树二分查找树二分查找首先,我们先了解二分查找假设n个数据元素的关键字满足有序(如:从小到大),并是连续存放的,那么可以进行二分查找来节省时间。下面我们来看一个例子:通过(left+right)/2取整的结果与中间mid比较,若比mid大,则left=mid+1;若比mid小,则right=mid-1。然后重复操作。若该列数字中没有查找的数字,即当查找到最后时,left会与right冲突(left>right),代表查找失败。这里给出算法;树首先,我们来了解一原创 2020-05-28 17:21:11 · 178 阅读 · 0 评论 -
串的基本内容
串基本操作BF算法KMP算法基本操作首先,串是由零个或多个字符组成的有穷序列,其次它也是一个特殊的线性表。串相等:长度相同且各个对应位置上的字符相同真子串=子串+空串子串=(n+1)n/2这里我们要讲下它的链式存储的赋值操作:我们采用的是尾插法(这样我们得到的就是和序列顺序相同的链表)p=(LiSting *)malloc(sizeof(LiString));//创建新的结点p->data=cstr[];//赋值r->next=p;r=p;这里我们重点要理解后2行代码原创 2020-05-10 21:44:02 · 472 阅读 · 0 评论 -
有关队列的问题
队列顺序存储链式存储顺序存储队列的特点:先进先出有关队列顺序存储,我们重点看顺环队列首先我们要了解队头元素变量是front,记录队列元素尾位置变量是rear然后当进行删除操作时,front+1;进行插入操作时,rear+1那么我们如何用代码的形式来表现呢?ptrq->rear=(ptrq->rear+1)%Max(这里代表rear+1)ptrq->front=(ptrq->front+1)%Max(这里代表front+1)队空:rear=rear代码:ptrq-&原创 2020-05-09 03:20:03 · 301 阅读 · 0 评论 -
有关堆栈的问题
堆栈后缀表达式的计算中缀表达式如何转换为后缀表达式堆栈如何找到栈顶规律总结后缀表达式的计算首先我们先引入后缀表达式: 62/3-42×+我们把它放到堆栈里面运行一遍首先我们从左向右扫描,遇到6和2,它们放入栈中然后遇到除号,计算6除以2,得到3,放入栈中然后遇到3,放入栈中继续向右,遇到减号,计算3-3,将结果放入栈中。。。。。。依次操作得到结果 8通过上面的例子,我们可以看出堆栈可以很好的处理好这种后缀表达式,那么我们用中缀表达式如何转换为后缀表达式呢?中缀表达式如何原创 2020-05-09 02:40:33 · 370 阅读 · 0 评论 -
数据结构时间复杂度分析
数据结构时间复杂度分析由于疫情原因,没办法去学校,数据结构也是看了很多遍,但知识点还是很容易忘,所以就用博客的方式来记录。对于一般算法的时间复杂度,一般直接找到它的循环的次数即可,例:if ( A > B ) { for ( i=0; i<N; i++ ) for ( j=N*N; j>i; j-- ) A += B;}e...原创 2020-05-06 23:21:40 · 740 阅读 · 0 评论