![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
axiaobingqiu
这个作者很懒,什么都没留下…
展开
-
C++中替代sprintf的std::ostringstream输出流详解
本文转载自https://blog.csdn.net/lanxuezaipiao/article/details/16358159作者:小敏纸一、简单介绍ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中。ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓冲区,替代sprintf。派生关系图:二...转载 2020-03-12 14:18:09 · 935 阅读 · 0 评论 -
c++模板
1.函数模板函数模板的声明和模板函数的生成函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免函数体的重新设计,它的最大特点是把函数使用的数据类型作为参数声明:template<typename 数据类型参数标识符>返回类型 函数名 (参数表){ 函数体}其中,template是定义模板函数的关键字;template后面的尖括号不能省略;t...原创 2019-12-16 21:59:08 · 91 阅读 · 0 评论 -
线性表的存储结构
线性表:零个或多个数据元素的有限序列。注意:首先他是一个序列也就是说,元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他元素的只有一个前驱,一个后继。然后就是线性表是有限的;在线性表中一个数据元素可以由若干个数据项组成。线性表的抽象数据类型:定义如下:ADT 线性表(list)DataOperation InitList(*L); ...原创 2019-11-17 23:04:38 · 748 阅读 · 0 评论 -
L2-004 这是二叉搜索树吗? (二叉搜索树的应用)
题面:L2-004这是二叉搜索树吗?(25 分)一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜...原创 2019-03-05 22:17:54 · 298 阅读 · 0 评论 -
二叉树(二叉搜索树的建立与一些基本操作)
这是二叉搜索树的一些基本概念。https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91/7077855?fr=aladdin二叉搜索树具有如下特点:根节点的值大于左子树的值,根节点的值小于右节点的值。 中序遍历的结果是从下到大。(与其构成的原理有关) 最大值一定在右子树上。最小值一定在左子树上。要...原创 2019-03-02 20:33:43 · 1981 阅读 · 0 评论 -
二叉树四种遍历之间的转化
1.已知后序遍历和中序遍历求出层序遍历。L2-006 树的遍历 (25 分)给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔...原创 2019-02-25 22:35:10 · 610 阅读 · 0 评论 -
牛客网练习赛35
一位客人来到了此花亭,给了女服务员柚一个数学问题:我们有两个函数,F(X)函数可以让X变成(X*X*X+X*X)mod 233。G(X)函数可以让X变成(X*X*X-X*X)mod 233,我们可以任意的对A使用F(X),和G(X),问最少需要多少次使用这两个函数让A变成B。输入描述:第一行输入一个T,表示T组案例(T<100000),然后输入两个整数A,B,表示我们需要把A...原创 2018-12-29 10:34:55 · 167 阅读 · 0 评论 -
Codeforces Round #527 (Div. 3)D,F;
D题:是一个思维题,同时也是一个数据结构,首先要知道什么情况对,是否可以添加到一个高度有影响,首先想到的是就是如果两个数相邻,且他们相差为奇数,这是就不可以叠到一样高,但是如果2, 1, 1这种情况就可以所以如果奇数出现,偶数次且相邻这是就可以平成任意的高度,这是这两个柱子就不需要考虑。可以消掉,这是·就继续往下考虑;这就相当于一个栈的结构。从这里可以知道,奇数对是否成功有影响,1,3,5他们...原创 2018-12-22 11:38:31 · 162 阅读 · 0 评论 -
算数表达式的计算
把双目运算符出现在两个操作数中间的这种操作习惯表示叫做算术表达式的中缀表示,这种算术表达式被称为中缀算数表达式;其实也就和数学中运算顺序差不多。在这里主要讲的是后缀表示或逆波兰式。其定义是把运算符放在两个运算对象的后面。 在后缀表达式中,不存在括号;也不存在运算符优先级的差别,计算过程完全按照运算符出现的先后次序进行。例子:/*3/5+6 ===>&...原创 2018-08-30 10:18:08 · 518 阅读 · 0 评论 -
最短路问题
最短路问题:最短路问题是图论中最基础的问题,对于本菜鸟来说就不简单了,emmmmm....最短路是给定两个点为起点和终点的路径中,边的权值和最小路径。1.单元最短路问题1(Bellman-Ford算法)单元最短路问题是固定一个起点,求它到其他所有点的最短路问题。终点也固定问题叫做两点之间最短路问题。但是解决单元最短路问题的复杂度也是一样,因此通常当做单元最短路来求解。如果给定...原创 2018-08-22 21:28:03 · 520 阅读 · 0 评论 -
图的一些基本概念
图:图由顶点和边组成。顶点代表对象。图的表示:有两种(1)邻接矩阵(2)邻接表;图的种类:有向图,无向图;无向图中的一些术语:路径:相邻顶点的序列;圈:起点和终点重合的路径;连通图:任意两点之间都有路径连接的图;度:顶点连接的边数;没有圈的连通图叫做树,没有圈的非连通图叫做森林;有向图的术语:入度,出度;图的表示:(1)邻接矩阵:对应于有向图,无向图,是...原创 2018-08-22 11:06:10 · 167 阅读 · 0 评论 -
并查集的简单介绍:
1.并查集是一种用来管理元素分组情况的数据结构。并查集可以高效地进行如下操作:(1)查询元素A与B是否属于同一组;(2)合并元素A和元素B所在的组;2,并查集的结构并查集也是使用树形结构实现的不过不是二叉树。每个元素对应一个节点,每个组对应一颗数。在并查集中,那个节点是哪个节点的父亲以及树的形状等信息无需多加关注,整体形成一个树形结构才是最重要的。(1)初始化我们准备n个节...原创 2018-08-22 08:46:20 · 305 阅读 · 0 评论 -
集合
集合的顺序存储结构和操作实现:struct Set{ ElemType *set; int len; int MaxSize;};顺序存储就是定义一个数组类型的对象来存储集合元素,同时要定义一个整数变量来存储当前集合长度和定义一个整型常量或变量来存储数组类型的长度。const int MaxSize=20;ElemType set[MaxSize];int len; ...原创 2018-08-13 20:51:44 · 167 阅读 · 0 评论 -
稀疏矩阵
稀疏矩阵的定义:稀疏矩阵的概念:首先矩阵的概念就不说了,都知道,那么稀疏矩阵就是矩阵中的特殊情况,其非零元素的个数远远小于零元素的个数。在实际应用中稀疏矩阵一般比较大,非零元素所占的的比例都比较小。稀疏矩阵的三元组线性表示:由于如果使用二位数组来存储的话就要浪费很多存储空间,同时还要在运算中花费大量的时间来进行零元素的无效计算。所以好的方法就是存储站元素中极少数的非零元素。所以就出...原创 2018-08-15 08:56:36 · 7638 阅读 · 0 评论 -
集合的链接存储结构和操作实现
集合的顺序存储结构是通过数组实现的,二集合的链接存储结构是通过存储节点之间的链接实现的,链接形成的结果称为链接表,通常使用单链表;当集合利用单链表存储时,集合中每个元素对应单链表中的一个结点,把这个元素存储到相应结点的值域中。由于集合中元素是无序的,所以在单链表中可以按任何次序链接。区别于数组结构,当向表示集合的单链表中插入一个元素结点时,为操作简单,把它插入到表头。即插入到 第一个...原创 2018-08-14 21:00:42 · 1054 阅读 · 0 评论 -
二叉树的应用---遍历之间的相互转化
知道中序后序求前序:#include<iostream>#include<cstdio>#include<cstring>#include<algoruthm>using namespace std;int t1[1001],t2[1001];void sousuo(int a,int b,int n,int flag){ ...原创 2018-06-12 18:26:32 · 150 阅读 · 0 评论 -
二叉树的应用---各种遍历之间的相互转换
HDU-1710知道前序中序求后序#include<iostream>#include<cstdio>#include<cstring>using namespace std;int p1[1001];int p2[1001];void judge(int a,int b,int n,int flag){ if(n==1){ ...原创 2018-06-12 18:15:18 · 140 阅读 · 0 评论 -
二叉树的创建与遍历和一些基本操作
知识了解二叉树的一些性质,缺乏对二叉树的操作,在这里就写一个二叉树的基本操作,熟悉熟悉二叉树。我认为最难的是层序遍历吧。比较难写一点。代码如下://二叉树的结构 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>...原创 2018-06-12 18:03:37 · 398 阅读 · 0 评论