![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
数据结构和算法
Clichong
这个作者很懒,什么都没留下…
展开
-
二叉树最小深度
二叉树最小深度参考链接:https://www.nowcoder.com/questionTerminal/e08819cfdeb34985a8de9c4e6562e724?f=discussion题目描述求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。基本思路递归思路:递归,若为空树返回0;若左子树为空,则返回右子树的最小深度+1;(加1是因...原创 2020-06-08 23:11:45 · 206 阅读 · 0 评论 -
【数据结构和算法】各种基本的排序算法原理
排序的概述排序方法的分类按存储介质分类:(内部排序和外部排序)按比较器个数分类:(串行排序和并行排序)按主要操作分类按辅助空间分类按稳定性分类稳定排序的例子(相同的数值排序后相对位置没有发生改变)非稳定排序的例子(相同的数值排序后相对位置发生了改变)记录序列顺序表的存储结构#define MAXSIZE 20 //设记录不超...原创 2020-04-02 18:51:05 · 611 阅读 · 0 评论 -
大数的四则运算(加,减,乘,除)处理
一、大数相除基本思路大数除法是四则运算里面最难的一种。不同于一般的模拟,除法操作不是模仿手工除法,而是利用减法操作来实现的。其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。逐个减显然太慢,要判断一次最多能减少多少个整数(除数)的10的n次方。以7546除以23为例:先用7546减去23的100倍,即减去2300,可以减3次,余下646,此时商就是300 (300=...原创 2020-04-02 17:56:47 · 948 阅读 · 0 评论 -
【数据结构和算法】线索二叉树
利用二叉链表中的空指针域:如果某个节点的左孩子为空,则将空的左孩子的指针域改为指向其前驱;如果某个节点的右孩子为空,则将空的右孩子的指针域改为指向其后继;这种改变指向的指针称为“线索”,加上了线索的二叉树称为线索二叉树,对二叉树按某种遍历次序使其变为线索二叉树的过程叫做线索化。为区分lchild和rchild指针到底是指向孩子的指针还是指向前驱后继的指针,对二叉链表的每个结点增设两个标...原创 2020-02-24 17:15:12 · 371 阅读 · 0 评论 -
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
散列表的基本概念散列存储散列方法(杂凑法)散列函数(杂凑函数):散列方法中使用的转换函数散列表(咋抽表):按上诉思想构造的表冲突:不同的关键码映射到同一个散列地址同义词:具有相同函数值的多个关键字就互称为同义词(如上,23和9计算出来的散列地址一样,出现了冲突,并且其互称为同义词)散列函数的构造构造散列函数考虑的因素构造散列函数的要求...原创 2020-02-24 11:11:36 · 5327 阅读 · 0 评论 -
【数据结构和算法】树表的查找算法(二叉排序树与平衡二叉树)
前诉:本文章的大致内容如下二叉排序树1、二叉排序树查的定义二叉排序树有称为二叉搜索树,二叉查找树二叉排序树的定义:二叉排序树的例子二叉排序树性质:中序遍历非空的二叉排序树所得到的数据元素序列是一个按关键字排列的递增有序序列。二叉排序树结果出现的原因:二叉排序树的左节点的数字比根节点要小,而右节点的数字要比根节点要大。而中序遍历是先左子树,然后再跟,在右子树,所以...原创 2020-02-23 22:20:58 · 540 阅读 · 0 评论 -
【数据结构和算法】线性表的查找算法(顺序查找,二分查找,插值查找,分块查找)
基础概念平均查找长度:关键字的平均比较次数(ASL)查找过程中需要注意的问题:(重点主要就是在增加了约束关系的基础上提高查找的效率。)顺序查找算法应用范围顺序表或线性链表表示的静态查找表表内元素之间无序顺序表的表示typedef struct{ KeyType key; //关键字域 ...... //其他域}ElemType;typedef s...原创 2020-02-23 15:29:49 · 3122 阅读 · 0 评论 -
【数据结构和算法】图的应用(最小生产树、最短路径、拓扑排序、关键路径)
最小生成树1、概念生成树(要求连通但是没有回路)一个图可以有许多颗不同的生成树所有生成树的共同特点:生成树的顶点个数与图的顶点个数相同生成树是图的极小连通子图,去掉一条边则非连通一个有n个顶点的连通图的生成树有n-1条边在生成树中再加一条边必然形成回路生成树中任意两个顶点间的路径是唯一的含n个顶点n-1条边的图不一定是生成树构造生成树的思路(以无向图的生成树...原创 2020-02-23 00:13:04 · 494 阅读 · 0 评论 -
【数据结构和算法】图的遍历(深度优先遍历DFS与广度优先遍历BFS)
图的遍历遍历定义:(遍历的实质:找到每个顶点的邻接点的过程)图的遍历特点解决重复遍历方法图的遍历1、深度优先遍历方法:例子:(连通图的深度优先遍历类似于树的先跟遍历,走不动再往回退)思想思路 (其中辅助数组visited[n],一开始初始化为0,访问到就初始化为1。)算法实现代码如下:void DFS(AMraph G...原创 2020-02-22 17:18:49 · 3325 阅读 · 1 评论 -
【数据结构和算法】图的各类概念与图的存储结构(还有十字链表与邻接多重表的介绍)
一、图的基本概念和术语定义:图是顶点和边的集合无向图:每条边都是无方向的有向图:每条边都是有方向的完全图:任意两个点都有一条边相连图、网、邻接、关联顶点的度:简单路径与回路联通图(无方向)、强连通图(有方向)权与网子图连通分量(无方向)强连通分量(有方向)级小连通子图与生成树图的类型定义图的操作二、图的存储结构1、邻接矩阵表示法...原创 2020-02-21 23:28:53 · 520 阅读 · 0 评论 -
【数据结构和算法】哈夫曼树及其应用
引子当操作的数目很大的时候,有时候只需要改变一下判断的顺序,可以减少执行时间,两种判别树的效率是不一样的。哈夫曼树就是一种效率最高的判别树,也称之为最优二叉树。一、哈夫曼树的基本概念路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。结点的路径长度:两个结点路径上的分支数。数的路径长度:从树根到每一个节点的路径长度之和。记作:TL结点数目相同的二叉树中,完全二叉树是...原创 2020-02-21 11:11:41 · 1203 阅读 · 0 评论 -
【数据结构和算法】树与森林&树与二叉树的转换
树的存储结构双亲表示法–树的结构#define MAX_TREE_SIZE 100typedef struct PTNode{ TElemType data: int parent; //双亲位置域}PTNode;typedef struct{ PTNode nodes[MAX_TREE_SIZE]; int r,n; //根节点的位置和结点个数}PTree;树...原创 2020-02-20 16:25:51 · 343 阅读 · 0 评论 -
【数据结构和算法】树的特点&树的存储结构&二叉树的遍历与创建&二叉树的高度节点计算
树的一些基本特点树的结点: 包括一个数据元素,和从这个元素,指向其各个子树的分支(但不包括指向其父树的分支)。结点拥有的子树数,称为结点的度(Degree),度为 0 的结点,称为叶结点(Leaf)或终端节点;度不为 0 的结点,称为非终端结点或分支结点。除根结点外,分支结点也称为内部结点。树的度为树内各节点的度的最大值。度:节点的子树个数;树的度:树中任意节点的度的最大值;兄弟:两...原创 2020-02-19 16:13:56 · 428 阅读 · 0 评论 -
【数据结构和算法】二叉树的创建,遍历,复制,结点计算,高度计算
分析的链接:https://editor.csdn.net/md?articleId=104390526代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>//二叉树的数据结构typedef struct Tree{ char data; struct Tree *lchi...原创 2020-02-19 16:13:29 · 292 阅读 · 0 评论 -
【数据结构和算法】如何根据树的遍历序列求解树结构和题目分析
根据前序遍历和中序遍历写出后续遍历例子:已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF解题思路:回看一下式1和式2。可以看出前序遍历的第一个元素就是这个子树的根节点,然后就可以结合中序遍历划分左右子树,进而对左右子树的前序遍历和中序遍历递归求解子树树根,直至子树为空。例题解释:有前序序列可以知道根节点为A,由中序序列可以知道A的左子树中序遍历为DBGE,由前序...原创 2020-02-19 16:13:13 · 744 阅读 · 0 评论 -
【数据结构和算法】字符串遍历-KMP算法
参考链接:https://www.bilibili.com/video/av218282751、KMP算法的介绍前提: BF的算法效率是比较低下的,KMP算法是字符串查找遍历的另一种小乱比较高的算法。KMP算法的核心就是避免不必要的回溯,问题有模式串决定,不是有目标决定。以下是几个思路启发,对KMP算法进行独自的思考:思路启发一:对于这个例子,当出现失配的情况之前,前面的内容子串和...原创 2020-02-18 17:06:03 · 397 阅读 · 0 评论 -
【数据结构和算法】字符串遍历-BF算法
BF算法bf算法其实只是普通的模式匹配算法。BF算法的思想:将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。代码如下://BF算法遍历母字符串查找子字符串//mom:母串 son:子串//mompos:母串遍历的位置...原创 2020-02-18 11:31:59 · 326 阅读 · 0 评论