![](https://img-blog.csdnimg.cn/20200901111129793.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
c/c++数据结构
c语言数据结构
VGtime
github peterroe
展开
-
二叉树-复杂二叉树的创建和文本显示
题目描述编一个程序,读入先序遍历字符串,根据此字符串建立一棵二叉树(以指针方式存储)。例如如下的先序遍历字符串:A ST C # # D 10 # G # # F # # #各结点数据(长度不超过3),用空格分开,其中“#”代表空树。建立起此二叉树以后,再按要求输出二叉树。输入输入由多组测试数据组成。每组数据包含一行字符串,即二叉树的先序遍历,字符串长度大于0且不超过100。输出对于每组数据,显示对应的二叉树,然后再输出一空行。输出形式相当于常规树形左旋90度。见样例。 注意二叉树的每一原创 2020-06-21 16:51:00 · 1390 阅读 · 0 评论 -
栈-中缀表达式转后缀表达式(stack实现)
题目描述输入一个中缀表达式,编程输出其后缀表达式,要求输出的后缀表达式的运算次序与输入的中缀表达式的运算次序相一致。为简单起见,假设输入的中缀表达式由+(加)、-(减)、×(乘)、/(除)四个运算符号以及左右圆括号和英文字母组成,其中算术运算符遵守先乘除后加减的运算规则。假设输入的中缀表达式长度不超过300个字符,且都是正确的,即没有语法错误,并且凡出现括号其内部一定有表达式,即内部至少有一个运算符号。中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算原创 2020-06-21 14:27:25 · 1144 阅读 · 0 评论 -
图-【深基18.例3】查找文献(图的dfs和bfs)
题目描述小K 喜欢翻看洛谷博客获取知识。每篇文章可能会有若干个(也有可能没有)参考文献的链接指向别的博客文章。小K 求知欲旺盛,如果他看了某篇文章,那么他一定会去看这篇文章的参考文献(如果他之前已经看过这篇参考文献的话就不用再看它了)。假设洛谷博客里面一共有 n(n≤100000 )篇文章(编号为 1 到 n)以及m(m≤1000000) 条参考文献引用关系。目前小 K 已经打开了编号为 1 的一篇文章,请帮助小 K 设计一种方法,使小 K 可以不重复、不遗漏的看完所有他能看到的文章。这边是已经整理好转载 2020-05-12 17:39:25 · 731 阅读 · 0 评论 -
二叉树-[JLOI2009]
题目描述如下图所示的一棵二叉树的深度、宽度及结点间距离分别为:深度:4 宽度:4(同一层最多结点个数)结点间距离: ⑧→⑥为8 (3×2+2=8)⑥→⑦为3 (1×2+1=3)注:结点间距离的定义:由结点向根方向(上行方向)时的边数×2,与由根向叶结点方向(下行方向)时的边数之和。输入格式输入文件第一行为一个整数n(1≤n≤100),表示二叉树结点个数。接下来的n-1行,表示从结点x到结点y(约定根结点为1),最后一行两个整数u、v,表示求从结点u到结点v的距离。输出格式三个数,每个数原创 2020-05-12 10:40:53 · 249 阅读 · 0 评论 -
二叉树-遍历问题(找单节点)
题目描述我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:所有这些二叉树都有着相同的前序遍历和后序遍历,但中序遍历却不相同。输入格式输A数据共两行,第一行表示该二叉树的前序遍历结果s1,第二行表示该二叉树的后序遍历结果s2。输出格式输出可能的中序遍历序列的总数,结果不原创 2020-05-12 09:50:00 · 623 阅读 · 0 评论 -
图-医院设置(图最短路径问题)
题目描述设有一棵二叉树,如图:其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为 1。如上图中,若医院建在1 处,则距离和=4+12+2×20+2×40=136;若医院建在 3 处,则距离和=4×2+13+20+40=81。输入格式第一行一个整数 n,表示树的结点数。接下来的 n 行每行描述了一个结点的状况,包含三个整数 w,u,v,其中 w 为居民人口数,u 为左链接(为 0 表示无链接原创 2020-05-11 18:03:10 · 824 阅读 · 0 评论 -
二叉树-求先序排列
题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度\≤8)。输入格式2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式1行,表示一棵二叉树的先序。输入输出样例输入BADCBDCA输出ABCD代码如下:#include <iostream>using namespace std;struct Node{ char c; Node *left; Node *right;};Node* fi原创 2020-05-10 15:14:14 · 1132 阅读 · 0 评论 -
二叉树-简单构造,先序输出
题目描述输入一串二叉树,输出其前序遍历。输入格式第一行为二叉树的节点数 n。(1≤n≤26)后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。空节点用 * 表示输出格式二叉树的前序遍历。输入输出样例输入 #6abcbdicj*d**i**j**输出 #abdicj代码如下:#include <iostream>using namespace std;int n;char a,b,c;struct Node{ char ch; No原创 2020-05-09 12:40:49 · 446 阅读 · 0 评论 -
树-数据结构与算法 -(打印二叉树)
打印二叉树用二叉树的双指针结构存储二叉树,每个结点所含数据元素均为单个字母,试编程实现按树形状打印二叉树的算法。例如:图 1 的二叉树打印为右边的形状。图 1 中的二叉树打印出来的树结构实际上是一个6行4列的矩阵,如图 2 所示。若由下往上收集结点,得到的序列刚好是该树的中序遍历序列,因此打印树结构相当于按照中序遍历序列的相反次序进行打印,每个结点打印一行;该例子中,打印出来的树结点共 ...转载 2020-04-14 17:12:55 · 10153 阅读 · 5 评论 -
二叉树-求后序排列
1.由双遍历序列构造二叉树给定一棵二叉树的前序遍历序列和中序遍历序列可以构造出这棵二叉树。例如前序序列是ABDECFG,中序序列是DBEAFCG,那么这颗二叉树的结构如图 1 所示。并按后续遍历输出样例输入ABDECFGDBEAFCG样例输出Post Travel Result:DEBFGCA代码如下:#include <stdio.h>#include &l...原创 2020-04-14 17:03:09 · 2671 阅读 · 6 评论 -
数据结构与算法 - 字符串匹配(初级)
相关知识:在一个长字符串中寻找一个短字符串出现的位置,这是字符串匹配问题。/*从字符串t查找子字符串p。字符串以数值结尾,例如p="str",那么p[0]='s',p[1]='t',p[2]='r',p[3]=0。采用朴素的匹配算法,返回子字符串第一次出现的位置,例如t="string ring",p="ring",则返回2。若没有找到,则返回-1。*/代码如下:#includ...转载 2020-04-12 13:23:39 · 780 阅读 · 0 评论 -
数据结构与算法 - 字符串匹配(进阶)
假设长字符串为t,短字符串为p。为了进行 KMP 匹配,首先需要计算字符串p的next数组,后面实现了计算该数组的函数void KmpGenNext(char* p, int* next)。对于 “abcabcab” ,计算出的next数组如下图:其中:next[i]给出如下信息:从左到右将p的字符与t的字符进行比对时,若在p的i号位置出现不匹配,就将字符串p相对t右移i-next[i]位;若...转载 2020-04-12 13:18:16 · 580 阅读 · 0 评论 -
数据结构与算法 - 线性表(完整代码)
样例输入:3 //输入一个数a,后面将输入a个数据元素8 9 3 //a个数据元素,依次插入尾结点后。形成单链表结点序列:8,9,33 //输入一个数b,后面将再输入b个数据元素10 89 22 //b个数据元素,依次插入0号结点后。形成单链表结点序列:8,22,89,10,9,389 //删除一个值为89的结点1 //删除1号结点样例输出:8 10 9 3#inc...转载 2020-03-27 14:11:06 · 5464 阅读 · 0 评论 -
数据结构与算法 - 栈(完整代码)
样例输入:push 56push 15push 12push 13popend样例输出Stack length: 3The stack (from top to bottom): 12 15 56代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>...转载 2020-03-28 13:59:38 · 2074 阅读 · 0 评论 -
数据结构与算法 - 队列(完整代码)
样例输入:in 1in 3in 5in 9in 12outend样例输出:Queue length: 4Queue data: 3 5 9 12#include <stdio.h>#include <stdlib.h>#include <string.h>typedef int T;struct LNode { ...转载 2020-03-28 14:14:22 · 2144 阅读 · 0 评论