数据结构
Xuannn_n
社畜
展开
-
【数据结构】查找 中
查找二叉排序树查找操作插入操作删除操作平衡二叉树(AVL树)实现原理实现算法删除操作二叉排序树二叉排序树,又称为二叉查找树。一颗空树,或者具有以下性质的树:若左子树不为空,则左子树上所有结点的值均小于它的根结点的值。若右子树不为空,则右子树上所有结点的值均大于它的根结点的值。左右子树也为排序树查找操作二叉树结构:/*二叉树二叉链表的结构定义*/typedef struct BiNode{ int data; struct BiNode *lchild,*rchild;}B原创 2020-08-24 12:00:55 · 128 阅读 · 0 评论 -
【数据结构】查找 上
查找查找概论顺序表查找有序表查找折半查找插值查找斐波那契查找线性索引查找稠密索引分块索引倒排索引查找概论查找表是由同一类型的数据元素(或记录)构成的集合。关键字数据元素中某个数据项的值主关键字可以唯一地标识一个记录查找顺序表查找有序表查找折半查找插值查找斐波那契查找线性索引查找稠密索引分块索引倒排索引...原创 2020-08-20 20:37:42 · 121 阅读 · 0 评论 -
【数据结构】图下
树最短路径Dijkstra算法Floyd算法拓扑排序介绍算法关键路径最短路径对于网图来说,最短路径是指两顶点之间经过的边上权值之和最少的路径。Dijkstra算法一步步求出它们之间顶点的最短路径,过程中都是基于已经求出的最短路径的基础上,求得更远顶点的最短路径,最终得到结果。求某个源点到其余各顶点的最短距离/* Dijkstra算法,求有向网G的v0顶点到其余顶点v的最短路径P[v]及带权长度D[v] */ //P[v]的值为前驱顶点下标,D[v]表示v0到v的最短路径长度和 #de原创 2020-08-18 10:39:06 · 223 阅读 · 0 评论 -
【数据结构】图 中
图遍历深度优先遍历(DFS)广度优先遍历(BFS)最小生成树Prim算法Kruskal算法遍历从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次。深度优先遍历(DFS)从图中某个顶点v出发,访问此顶点,然后从v的未访问的邻接点出发深度优先遍历此图,直到图中所有和v有路径相通的顶点都被访问到。邻接矩阵://邻接矩阵方法深度遍历全图typedef int Boolean;Boolean visited[MAX];//深度优先递归算法void DFS(MGraph G,int i)原创 2020-08-12 19:13:02 · 164 阅读 · 0 评论 -
【数据结构】图 上
图定义存储结构邻接矩阵邻接表十字链表邻接多重表边集数组定义图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V表示图中的顶点结合,E是边的集合。图按照有无方向分为有向图和无向图。无向图由顶点和边组成,用圆括号表示边;有向图由顶点和弧构成,用尖括号表示边。按边数多少分为稠密图和稀疏图。如果任意两个顶点之间都存在边叫完全图,有向的为完全有向图。如果没有重复的边或顶点到自身的边叫简单图。图中顶点有依附、邻接点的概念。无向图顶点的边数叫做度,有向图顶点分为出度原创 2020-08-11 22:30:59 · 367 阅读 · 0 评论 -
【数据结构代码】 线性表 相关运用
线性表代码约瑟夫环的问题双向链表循环链表公式约瑟夫环的问题问题描述:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。双向链表#include <iostream>using namespace std;//初始原创 2020-08-09 12:23:35 · 131 阅读 · 0 评论 -
【数据结构作业代码】串 有关运用
串代码DNA病毒BF算法DNA病毒KMP算法求单词出现个数KMP算法DNA病毒BF算法#include <iostream>#include <stdlib.h>#include <string.h>using namespace std;char virus[200];char DNA[200];//BF算法bool Index(char *S,char *T){ int i=0,j=0; while(i<strlen(S)&&am原创 2020-08-09 12:04:39 · 272 阅读 · 0 评论 -
【数据结构】树(下)
树遍历二叉树原理遍历方法前序遍历算法中序遍历算法后序遍历算法二叉树的建立线索二叉树原理结构实现树、森林与二叉树的转换树转换为二叉树森林转换为二叉树二叉树转换为树二叉树转换为森林赫夫曼树及其应用定义与原理算法描述遍历二叉树原理二叉树的遍历是从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。遍历方法前序遍历:先访问根结点,然后前序遍历左子树,再前序遍历右子树。中序遍历:先访问左子树,然后是根节点,最后是右子树。后序遍历:先访问左子树,然后是右子树,最后是根原创 2020-08-09 11:27:27 · 182 阅读 · 0 评论 -
【数据结构】树(上)
树定义结点分类结点间关系其他相关概念存储结构双亲表示法孩子表示法孩子兄弟表示法二叉树定义二叉树特点特殊二叉树二叉树性质二叉树存储结构定义树(Tree)是n(n>=0)个结点的有限集。n=0时为空树,在任意一颗非空树中有且仅有一个特定的根;当n>1时,其余结点可以分为m个互不相交的有限集T1…,其中每个集合本身又是一个树。注:根结点唯一,子树的个数没有限制,但是它们一定互不相交。结点分类维度:结点拥有的子树个数叶结点(终端结点):度为0的结点分支结点:度不为0的结点树的度:树内各结原创 2020-08-07 18:11:26 · 143 阅读 · 0 评论 -
【数据结构】串
串定义比较存储结构朴素模式匹配算法(BF算法)KMP算法KMP算法描述以及next函数nextval函数nextval数组推导代码实现定义串是由零个或多个字符组成的有限序列。有空串,空格串,子串等。比较给定两个串:s=“a1a2…an”,t=“b1b2…bn”,当满足下列条件之一时,s<t。1、n<m,且ai=bi。比如s=“hap”,t=“happen”。2、存在某个k<=min(m,n),使得ai=bi,ak<bk。比如s=“happen”,t=“happy”。存储原创 2020-08-05 11:47:54 · 261 阅读 · 0 评论 -
【数据结构】队列
队列队列的定义循环队列存储结构初始化操做求队列长度入队出队链式队存储结构入队出队队列的定义队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。*先进先出(First In First Out)*简称为FIFO。插入一端为队尾,删除一端为队头。循环队列队列的头尾相接的顺序存储结构为循环队列。队列满的条件是:(rear+1)%QueueSize==front计算队列长度为(rear-front+QueueSize)%QueueSize存储结构typedef int QElemTyp原创 2020-08-04 21:53:13 · 228 阅读 · 0 评论 -
【数据结构】栈
栈栈的定义顺序栈存储结构出栈以及进栈共享栈链式栈存储结构出栈以及进栈栈的应用递归四则运算表达式求值后缀(逆波兰)表示法中缀表达式转后缀表达式栈的定义栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。**后进先出(Last In First Out)**称为LIFO结构。顺序栈存储结构栈的结构定义:typedef int SELemType;//SELemType根据实际情况而定义。typedef struct{ SEle原创 2020-08-04 12:04:45 · 821 阅读 · 0 评论