C++ 数据结构
文章平均质量分 69
Nu11P0int3r
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
地图染色问题
地图染色问题一.概述二.代码三.运行截图一.概述能够选择中国地图和美国地图进行染色,通过队列来调整颜色的优先级,能够支持4-7种颜色进行染色。二.代码#include<iostream>#include<iomanip>#include <string>#include <queue>using namespace std;int N;//选择颜色个数//用队列来储存所有的颜色,当选择了颜色的数量,就在队列里生成所选数量的颜色,每次选择优先原创 2021-07-08 22:44:51 · 1173 阅读 · 0 评论 -
数据结构 C++内排序
直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 简单选择排序 堆排序 归并排序原创 2021-01-01 22:53:13 · 421 阅读 · 0 评论 -
数据结构 C++查找
数据结构 查找 C++线性表的查找树表的查找哈希表的查找原创 2021-01-01 17:38:26 · 1368 阅读 · 1 评论 -
C++ 最小生成树和最短路径的实现
C++ 生成树的实现(一)生成树的概念(一)生成树的概念 一个有n个顶点的无向连通图的生成树是一个极小连通图,它含有图中的所有顶点,但只包含构成一棵树的n-1条边。如果在一棵生成树上添加一条边,必定构成一个环,因为这条边使得它依附的那两个顶点之间有了第二条路径。 如果一个无向图有n个顶点切少于n-1条边,则是非连通图。如果它多于n-1条边,则一定有回路。但是,有n-1条边的图不一定都是连通图。...原创 2020-12-28 21:24:51 · 1536 阅读 · 0 评论 -
C++ 实现图的存储和遍历
C++ 实现图的存储和基本运算邻接矩阵的建立、输出邻接表的建立、输出邻接表和邻接矩阵的相互转换深度优先遍历和广度优先遍历原创 2020-12-22 19:42:23 · 2502 阅读 · 0 评论 -
数据结构 图的基本介绍
数据结构 图的基本介绍图的定义图的基本术语端点和邻接点顶点的度、入度和出度图的定义 图都是由顶点和边构成的。采用形式化的定义,图G(Graph)由V(Vertex)和E(Edge)两个集合组成,记为G=(V,E),其中,V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。 通常,用字母或自然数(顶点的编号)来标识图中的顶点。约定用i(0≤i≤n-1)表示第i个顶点的编号。E(G)表示图G中边的集合,它确定了图G中数据元素的关系。E(G)可以为空集,当E原创 2020-12-21 19:13:17 · 1003 阅读 · 0 评论 -
C++ 实现哈夫曼树和哈夫曼编码
C++ 实现哈夫曼树哈夫曼树的定义哈夫曼树的定义 将树中的结点赋予一个有某种意义的数值,称此数值为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度。树中所有叶子结点的带权路径长度之和称为该树的带权路径长度,通常记为:WPL=∑i=1n0wiliWPL =\sum_{i=1}^{n_0}{w_il_i} \quad WPL=i=1∑n0wili其中,n0表示叶子结点的数目,wi和li(1<=i<=n0)分别表示叶子结点ki的权值和根ki之间的原创 2020-12-20 15:04:47 · 2748 阅读 · 1 评论 -
C++ 二叉树的基本运算及实现
C++ 二叉树的基本运算及实现二叉树的定义二叉树的性质性质1:非空二叉树上的叶子结点数等于双分支结点数加1二叉树的定义二叉树是一个有限的结点的集合,这个集合或者为空,或者由一个根节点和两棵互不相交的称为左子树和右子树的二叉树组成。二叉树的表示法和树的表示法一样,有树形表示法、文氏图表示法、凹入表示法和括号表示法等。满二叉树:在一棵二叉树中,如果所有分支结点都有左孩子和右孩子结点,并且叶子结点都集中在二叉树的最下一层,这样的二叉树称为满二叉树。我们可以对满二叉树的结点进行层序编号,约定从树根为1原创 2020-12-17 18:13:44 · 3373 阅读 · 6 评论 -
数据结构 树的基本介绍
数据结构 树树树的定义及特点树的逻辑结构表示方法树树的定义及特点树的定义:树是由n(n>=0)个结点组成的有限集合(记为T)。如果n=0,它是一棵空树,这是树的特例;如果n>0,n个结点中存在(有且仅有)一个结点作为树的根节点(root),其余节点可分为m(m>=0)个互不相交的有限集T1、T2、…、Tm,其中,每个子集本身又是一颗符合定义的树,称为根节点的子树。树的特点:树是一种非线性数据结构,具有以下特点:它的每一个结点可以有零个或多个后继结点,但是有且只有一个前驱结点(原创 2020-12-12 20:28:38 · 1408 阅读 · 0 评论 -
C++实现循环队列
C++实现循环队列队列队列队列(简称队)是一种操作受限的线性表,其限制为仅允许在表的一端进行插入,而在表的另一端进行删除。一般情况下,将进行插入的一端称为队尾,将进行删除的一端称为对头或队首。向队列中插入新元素称为进队或入队,新元素进队后就成为新的队尾元素;从队列中删除元素称为出队或离队,元素出队后,其直接后继元素就成为队首元素。由于队列的插入和删除操作分别是在表的一端进行的,每个元素必然按照进入的次序出队,所以又把队列称为先进先出表。...原创 2020-12-10 20:53:00 · 812 阅读 · 0 评论 -
C++用栈求解简单的算术表达式
C++用栈求解简单的算术表达式问题描述设计运算算法代码实现1.定义一个Calculator类2.得到运算符优先级3.输入算术表达式4.将中缀表达式转换成后缀表达式5.计算后缀表达式6.主函数问题描述这里限定的简单算术表达式求值问题是,用户输入一个包含“+”、“-”、“*”、“/”、正整数和圆括号的合法数学表达式,计算该表达式的运算结果。设计运算算法中缀表达式在算术表达式中,运算符位于两个操作数中间的表达式称为中缀表达式。例:1 + 2 * 3中缀表达式运算一般遵循“先乘除,后加减,从左至右,原创 2020-12-06 00:07:29 · 1781 阅读 · 0 评论 -
C++实现栈
C++实现栈栈栈的顺序存储结构及其基本运算的实现定义一个顺序栈类1.顺序栈的初始化和销毁2.判断栈是否为空3.进栈4.出栈同时取栈顶元素栈栈是一种只能在一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。栈顶的当前位置是动态的,由一个被称为栈顶指针的位置提示器来提示。表的另一端称为栈底,当栈中没有数据元素时,称为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈。栈的顺序存储结构及其基本运算的实现顺序栈的初始化和销毁判断栈是否为空进栈出栈同时取栈顶元素原创 2020-12-05 11:43:43 · 1174 阅读 · 0 评论 -
C++实现单链表
C++实现单链表单链表单链表的实现定义一个结点类定义一个LinkList类1.单链表的初始化和销毁单链表线性表的链式存储结构成为链表。在链表中每个结点中包含后继结点的地址信息,这称为指针域,这样可以通过一个结点的指针域找到后继结点的位置。如果每个结点只设置一个指针域,用于指向其后继结点,这样构成的链表称为线性单向连接表,简称单链表。单链表的实现单链表的初始化和销毁采用尾插法建立单链表输出单链表求单链表的长度判断单链表是否为空求单链表某个位置的元素值查找元素插入元素删除元素定义原创 2020-12-04 19:27:02 · 12401 阅读 · 6 评论 -
C++实现顺序表
C++实现顺序表顺序表顺序表基本运算的实现定义一个SqList类1.建立顺序表:2.顺序表的初始化和销毁:3.输出顺序表4.求顺序表的长度5.求顺序表中的某个位置元素值6.按元素查找7.插入数据元素8.删除数据元素有序表的二路归并顺序表线性表的顺序存储结构称为顺序表。本文中采用一维数组data来实现顺序表,并设定数组最大长度为常量MAXSIZE,将长度为n的线性表存放在data数组中。随着线性表的插入和删除操作,线性表的长度是变化的,而数组的长度是不可变的,所以线性表的长度应该小于或等于数组的长度MA原创 2020-12-03 21:01:47 · 4082 阅读 · 2 评论
分享