数据结构与算法
文章平均质量分 87
数据结构是相互之间存在的一种或多种特定关系的数据元素的集合
久忆凉
简单的事情重复做,复杂的事情简单做!
展开
-
数据结构与算法|已知二叉树的其中两个遍历还原二叉树并求遍历(中后、先中)
以pat的一道题来详细理解一下这两种还原方法:题目题意是给出中序后序遍历,求其层次遍历。题目中给出的遍历分别为:后序遍历: 2 3 1 5 7 6 4中序遍历: 1 2 3 4 5 6 7由此易求出其二叉树为:因此其先序遍历: 4 1 3 2 6 5 7层次遍历: 4 1 6 3 5 7 21、知后序遍历和中序遍历还原二叉树核心代码:bitree RestoreTree(int h1,int h2,int z1,int z2){ bitree bt = CreateTr.原创 2020-08-10 14:00:53 · 272 阅读 · 0 评论 -
数据结构与算法|前缀、中缀与后缀表达式的转换与计算(Java版与C++版)
1.何为前缀、中缀、后缀表达式?我们可以用上图的二叉树,分别用前序、中序、后序遍历来分别表示表达式,我们会发现它们其实就是前缀、中缀和后缀表达式:前缀表达式:二叉树的前序遍历,前缀表达式的运算符位于两个相应操作数之前,一种没有括号的算术表达式,前缀表达式又被称为前缀记法或波兰式。-+A*B-CD/EF中缀表达式:二叉树的中序遍历,这个表达式也就是我们平常所见的计算表达式。一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间,是人们常用的算术表示方法。A+B*(C-D)-E/F原创 2020-07-24 23:46:38 · 945 阅读 · 0 评论 -
[数据结构]从散列(Hash)表、哈希函数的构造到解决冲突
一、什么是散列表?散列表(Hash table,也叫哈希表),是根据关键字码值而直接进行访问的数据结构,也就是通过把关键字码值映射到表中一个位置来访问记录,以加快查找的速度。哈希函数也叫做散列函数,是将记录的关键字值与记录的存储位置对应起来的关系f,f(关键字)的结果称位哈希地址。哈希地址(记录的存储位置)= f(关键字),这里对应的关系就叫哈希函数,也可叫散列函数。在运用散列表来解决问题...原创 2020-02-21 10:52:15 · 446 阅读 · 0 评论 -
[数据结构]B树及其基本操作、B+树的基本概念
前言:写B树这种博客可能有很多大佬比我写的好,甚至我下面的文章也有许多相似之处,我是参考了大佬们的博客写下我的通俗理解,为了更好的复习,有相似之处莫怪!!!如果你看得上我的理解,那是我的幸运,祝你们有所获!!!一、B树B树就是B-树,叫做B-tree,全称Balance-tree(平衡多路查找树),使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度,这个数据结构一般用...原创 2020-02-20 15:20:30 · 924 阅读 · 1 评论 -
[数据结构]排序的基本概念与基本实现(十一种排序)
一、排序概念排序称为分类,就是把一批任意序列的数据记录,按关键字重新排成一个有序的序列。排序一般又分为以下几种:(1)稳定排序和不稳定排序稳定排序:两个相等的数排序前的位置顺序与排序后位置的顺序不变。比如排序前:5,2,5。排序后:2,5,5。不稳定排序:两个相等的数排序前的位置顺序与排序后位置的顺序颠倒。比如5,8,5,2,9。选择排序中:第一个5先跟2发生了交换。(2)根据存储设备...原创 2020-02-18 17:18:19 · 1197 阅读 · 0 评论 -
[数据结构]查找的基本概念以及基本实现
一、查找的基本概念1、查找表:用于查找的数据元素集合。它由同一类型的数据元素构成。2、关键字、主关键字、次关键字:关健字:数据元素中的某个数据项;主关键字:唯一能标识数据元素的关键字,即每个元素的关键字值互不相同;次关健字:若查找表中某些元素的关健字值相同,比如学生信息表中的学号是主关键字,姓名是次关键字。3、查找:指在数据元素集合中查找满足某种条件的数据元素的过程。4、静态查找...原创 2020-02-13 10:16:58 · 860 阅读 · 0 评论 -
[数据结构]拓扑排序
在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称为AOV网。注意:AOV网中的弧表示活动之间存在某种制约关系。一、什么是拓扑排序?在AOV网中,若不存在会路,则所有活动可排列成一个线性序列,使得每个活动的所有前驱活动都排在该活动的前面,我们把此序列叫做拓扑序列。由AOV网构造拓扑序列的过程叫做拓扑排序。...原创 2020-02-12 15:39:51 · 190 阅读 · 0 评论 -
[数据结构]最小生成树
有关生成树的几个概念:连通图:在无向图中,若任意两个顶点都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫做连通网。生成树:一个连通图的生成树是指一个连通子图,它含有图中全部n个顶点,但只有足以构成一棵树的...原创 2018-08-09 23:10:35 · 5048 阅读 · 0 评论 -
[数据结构]图的深度优先搜索(DFS)和广度优先搜索(BFS)(通俗易懂)
一、深度优先搜索(DFS,Depth First Search)深度优先搜索的主要思想:首先从一个未走过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有被访问过的顶点时,则回到上一个顶点,继续访问别的未被访问过的顶点,直到所有的顶点都被访问过。(不撞南墙不回头)DFS遍历图解过程如下:1、DFS邻接矩阵核心代码实现(可以链表实现,以下是数组实现):bool boo...原创 2018-04-15 15:17:08 · 561 阅读 · 0 评论 -
[数据结构]图的基本概念、存储结构(通俗易懂)
一、图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合。前面我们学习了线性表、树,到现在学图的相关知识,针对图的定义,简单地了解一下图的几个特点:(1)线性表中数据元素叫元素;树中数据元素叫结点;在图中的数据元素,我们则称之为顶点。(2)线性表中可以没有数据元素,称为空表;树中可...原创 2020-02-08 10:00:12 · 1426 阅读 · 0 评论 -
[数据结构]哈夫曼树和哈夫曼编码、译码(通俗易懂)
一、哈夫曼树的相关的几个名词1、路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。如下图根结点到a结点之间的通路就是一条路径。2、路径长度:在一条路径中,每经过一个结点,路径长度都要加1。如下图根结点到b结点之间所经过的通路数为2,也就是路径长度为2。3、结点的权:每一个结点都有一个唯一的数值,称为结点的权。如下图结点a的权值为7,b的权值为5。4、结点的带权路径长度:根...原创 2020-02-06 11:51:41 · 7514 阅读 · 6 评论