数据结构
文章平均质量分 68
发如雪-ty
一个工作7年的程序员,一直从事C++开发方面的工作,曾有幸在安防行业深耕4年,并有幸在工业检测行业工作至今已有3年,主要负责系统软件的设计与开发,个人编程的信仰:不要盲目学习酷炫的东西,最重要的依然是内功。
展开
-
二叉树的最近公共祖先LCA
LCA最近公共祖先原创 2023-06-09 00:45:53 · 505 阅读 · 0 评论 -
软件设计经验简谈
软件设计经验简谈原创 2023-01-07 16:57:24 · 753 阅读 · 0 评论 -
线索二叉树
线索二叉树实现原创 2022-12-07 23:44:47 · 127 阅读 · 0 评论 -
动态规划入门
动态规划理论与练习原创 2022-12-07 23:38:47 · 421 阅读 · 0 评论 -
什么是哈夫曼树
哈夫曼树的概念及其代码实现原创 2022-12-07 23:29:40 · 473 阅读 · 0 评论 -
数据结构-图
数据结构图原创 2022-09-16 00:40:44 · 192 阅读 · 0 评论 -
数据结构-树的表示与存储
树的表示与存储原创 2022-08-28 17:40:05 · 207 阅读 · 0 评论 -
算法设计之-世界上最好理解的堆排序
堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的定义就是:大顶堆:arr[i]原创 2021-01-14 22:57:18 · 348 阅读 · 1 评论 -
数据结构之-简单实现字典树
字典树原创 2020-12-15 23:50:39 · 313 阅读 · 3 评论 -
动态创建二叉树
#include <iostream>using namespace std;typedef struct _BinaryTree{ char ch; _BinaryTree *pLeft; _BinaryTree *pRight;}BTreeNode;//create 先序动态创建二叉树void CreateBitnaryTree(BTreeNode **pNode){ char ch; cin >> ch; if (ch == '#') {原创 2020-12-06 19:15:31 · 826 阅读 · 0 评论 -
数据结构-二叉树的层次遍历18
二叉树的层次遍历之前我已经讲解过了二叉树的先序遍历,中序遍历、后序遍历今天来看一个层次遍历,就以下面的树为例子吧,层次遍历就是一层一层的遍历,下图的层次遍历的结果是1,2,3,4,5,6,7那就看代码吧!#include <iostream>#include<queue>using namespace std;typedef struct BiTNode{...原创 2020-03-02 21:41:20 · 223 阅读 · 0 评论 -
数据结构-图的存储和遍历17
图的存储和遍历17这部分代码比较多,然后文件已经打包,先看看邻接矩阵,这个是找的资料,看着不错就拿来用吧.就以下面这个多为例吧,代码包含,图的存储和深度优先遍历和广度优先遍历。请看深度优先:广度优先:接下来来是要实现的代码的头文件#ifndef _MGRAPH_H_#define _MGRAPH_H_typedef void MGraph;typedef void MV...原创 2020-02-27 23:44:03 · 404 阅读 · 0 评论 -
数据结构-哈希表16
哈希表我就直接以我做的笔记开始吧请看下图,其实数组就是一个哈希表,哈希表是一种数据结构,以键值对的方式存储。演示代码:int main(int argc, char *argv[]) { Hash* hash = Hash_Create(); struct Student s1 = {"9001201", "Delphi", 30}; stru...原创 2020-02-27 15:57:21 · 242 阅读 · 0 评论 -
数据结构-平衡二叉树01-15
平衡二叉树01平衡二叉树(AVL)的定义首先,平衡二叉树是搜索二叉树。其次,平衡二叉树的左子树和右子树高度的绝对值不超过1.LL型最终调整为RR型最终调整为LR型转为:RL型转为:对于LR,RL两种类型先转为LL,RR类型,然后再根据LL,RR类型转换以下是两个例子...原创 2020-02-26 14:58:08 · 177 阅读 · 0 评论 -
数据结构-二分搜索树14
二分搜索树 Binary Search Tree性质:a. 二分搜索树是二叉树b.二分搜索树的每一个节点的值: 大于其左子树的所有节点的值 小于其右子树的所有节点的值c.每一颗子树也是二分搜索树e.存储的元素必须具有可比较...原创 2020-02-25 15:56:17 · 144 阅读 · 0 评论 -
数据结构-图的基本信息13
图的基本信息131. 图的定义图(Graph)是由顶点的有穷非空集合和顶点之间的边组成,通常表示为:G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合。记作G=(V, E) G:Graphics 图形 V:Vertex 顶点 E:Edge 边• 线性表中将数据元素叫元素,树中将数据元素叫结点,在图中数据元素称之为顶点(Vertex)。...原创 2020-02-22 18:08:57 · 381 阅读 · 0 评论 -
数据结构-队列12
队列12 像栈一样,队列也是一种线性表。它允许在表的一端插入数据,在另一端删除元素。插入元素的这一端称之为队尾。删除元素的这一端我们称之为队首。队列的结构如下图所示。队列的特性:• 在队尾插入元素,在队首删除元素。• FIFO(先进先出),就向排队取票一样,先到先拿票队列的相关概念(1)队头( fron...原创 2020-02-21 22:10:33 · 236 阅读 · 0 评论 -
数据结构-栈的应用之逆波兰计算器的实现11
栈的应用之逆波兰计算器的实现1.先看看逆波兰表达式是个什么东西2.用代码实现:至于TyStack可以查看void main(){ TyStack<double> m_stack; char str[10] = { 0 };//主要用来缓存输入的数字 printf("请输入逆波兰表达式(#:结束),以空格代表每个数字的分割\n"); char c = ' '; s...原创 2020-02-21 13:30:06 · 142 阅读 · 0 评论 -
数据结构-栈10
栈一、栈(stack)1、栈的特点栈(Stack)是一种线性存储结构,它具有如下特点:【注意】:(1)栈中的数据元素遵守”先进后出”(First In Last Out)的原则,简称FILO结构。(2)限定只能在栈顶进行插入和删除操作。栈在计算机中应用相当广泛,包括递归的调用和返回、二叉树和森林的遍历、调用子程序及从子程序返回、表达式的转换和求值、CPU的中断处理等等。2、栈的相关...原创 2020-02-19 21:18:57 · 491 阅读 · 0 评论 -
数据结构-线性表09
线性表一、 定义 线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列。线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而序列头元素没有直接前驱,序列尾元素没有直接后继。线性表的两种表示形式:顺序表示(其实就是数组)链表表示二、 顺序...原创 2020-02-19 19:07:24 · 107 阅读 · 0 评论 -
数据结构-单链表的各种操作08
单链表的创建、增加、删除、倒转//链表typedef struct Node{ int data; struct Node *next;}TyLIST;//1.创建链表TyLIST *CreateList(){ TyLIST *m_pHead = (TyLIST *)malloc(sizeof(TyLIST)); m_pHead->data = 0; m_pHea...原创 2020-02-19 14:54:59 · 203 阅读 · 0 评论 -
数据结构-哈夫曼树用代码实现07
哈夫曼树用代码实现请看代码:例子用的上一节,请自行对比#include<iostream>#include<deque>#include<vector>#include<algorithm>using namespace std;typedef struct _HuffumanTree{ int weight;//权值 _Hu...原创 2020-02-17 18:46:57 · 494 阅读 · 0 评论 -
数据结构-哈夫曼树的构造和哈夫曼编码06
哈夫曼树的构造和哈夫曼编码06 哈夫曼编码的代码实现对于初学数据结构的同学可能会有些困难,没有必要灰心,其实没啥,学习就犹如攀登一座又一座的山峰,每当我们攻克一个难点后,回首来看,也不过如此嘛。我们要做的就是不断的去攀越学习上的山峰 不断的超越过去的自己。尤其是我们程序员,不进则退,中国最不缺的就是人,...原创 2020-02-17 13:39:25 · 734 阅读 · 0 评论 -
数据结构-非递归中序遍历二叉树04
非递归中序遍历二叉树遍历思想://找到最左边的节点BiTNode * GetLeftLeaf(BiTNode *T, stack<BiTNode *> &m_stack){ if (!T) { return NULL; } while (T->lchild) { m_stack.push(T); T = T->lchild; }...原创 2020-02-14 13:28:49 · 342 阅读 · 0 评论 -
数据结构-求叶子节点个数,树的高度,拷贝二叉树03
求叶子节点个数,树的高度,拷贝二叉树/* 1 2 34 5 */typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild; //左孩子 右孩子}BiTNode, *BiTree;void PreOrder(BiTNode *T){ if (T != NULL) { ...原创 2020-02-13 23:28:26 · 200 阅读 · 0 评论 -
数据结构-二叉树的访问02
二叉树的访问本节主要以递归的方式访问树节点,分为先序,中序,后序模拟树: /* 1 2 34 5 */typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild; //左孩子 右孩子}BiTNode, *BiTree;void PreOrder(BiTNode *T){...原创 2020-02-13 17:41:56 · 223 阅读 · 0 评论 -
数据结构-树的基础知识01
树的基础知识一、树1、什么是树?树(Tree)是n(n≧0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:有且仅有一个特定的称为根的结点。当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、T3……、Tm,其中每个集合本身又是一棵树,并且称为根的子树。2、树的基本概念看下面的图:3、定义树的时候需要注意的两点:n>0时,根的节点是唯一的,不...转载 2020-02-13 12:31:10 · 234 阅读 · 0 评论