
数据结构
文章平均质量分 62
了解数据结构
是zg啊!
细水长流!
展开
-
树的各种操作
目录1. 二叉树的前序、中序和后序遍历2. 二叉树的层序遍历3. 二叉树的最大深度4. 相同的树5. 对称二叉树6. 翻转二叉树7. 左叶子之和8. 平衡二叉树9. 从前序与中序遍历序列构造二叉树1. 二叉树的前序、中序和后序遍历树的数据结构public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(原创 2022-03-12 17:53:52 · 1623 阅读 · 0 评论 -
POJ 4103:踩方格
总时间限制: 1000ms 内存限制: 65536kB描述有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b. 走过的格子立即塌陷无法再走第二次;c. 只能向北、东、西三个方向走;请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。输入允许在方格上行走的步数n(n <= 20)输出计算出的方案数量样例输入2样例输出7代码如下:#inc原创 2020-09-05 02:48:41 · 317 阅读 · 0 评论 -
POJ 1724:ROADS
总时间限制: 1000ms 内存限制: 65536kB描述N cities named with numbers 1 … N are connected with one-way roads. Each road has two parameters associated with it : the road length and the toll that needs to be paid for the road (expressed in the number of coins).Bob and原创 2020-09-05 18:21:59 · 175 阅读 · 0 评论 -
SCAU------18747 最长路径
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: 不限定Description在一个工程项目里,多项工作可以同时进行。我们可以用有向无环图表述项目流程,把项目中的事件表述为结点,把活动表述成有权值的边。现在我们已知项目共有n个事件,起点为1,终点为n,m个活动。请你计算出这个项目的最早完成事件,也就是起点到收点的最长路径。输入格式第一行两个整数n和m,代表结点数量和边数量。(1<=n,m<=100)下面m行,每行3个整数a,b,x,表示点a到点b之间原创 2020-09-10 01:32:00 · 376 阅读 · 0 评论 -
SCAU------18734 学习
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: 不限定Description在经历…之后,你打算好好学习下计算机专业的课程,避免面试过程中的各种尴尬场面。计算机的专业课程间既有循序渐进的特点,相互间也存在着依赖关系(似乎其他专业也是这样…)。现在给你n门课程和m个课程间关系,请给出一个有效的学习次序。注意可能存在多门课程不依赖任何其他课程输入格式第一行有2个数,分别为课程数n和关系数m。 (1=<n<=20) (1=<m<=30)原创 2020-09-09 15:18:06 · 353 阅读 · 0 评论 -
SCAU------18732 最短路问题
时间限制:1000MS 代码长度限制:10KB提交次数:0 通过次数:0题型: 编程题 语言: 不限定Description现在有n个车站和m条直达公交线路,每条线路都有一个固定票价。作为一个窮人,你打算从车站1坐车到车站n,请计算下车站1到车站n的最少花费。如果车站1无法到达车站n,请输出-1。注意,在车站x和y之间可能存在不止一条线路。输入格式第一行两个整数n和m,表示车站数量和线路数量。(1<=n<=100),(1<=m<=1000)第二行至第m+1行,每行原创 2020-09-08 19:06:12 · 710 阅读 · 0 评论 -
POJ 1611:The Suspects
总时间限制: 1000ms 内存限制: 65536kB描述Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the best strategy is to separate the suspects from原创 2020-09-08 08:54:57 · 169 阅读 · 0 评论 -
SCAU------8592 KMP算法
Description用KMP算法对主串和模式串进行模式匹配。本题目给出部分代码,请补全内容。#include “stdio.h”#include “stdlib.h”#include “iostream.h”#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASLBLE -1#define OVERFLOW -2#define MAXSTRLEN 255 //用户可在255以内定义最原创 2020-09-02 22:49:25 · 328 阅读 · 0 评论 -
SCAU------8591 计算next值
Description编写算法,录入多个字符串计算并验证NEXT值,输入0结束。本题目给出部分代码,请补全内容。]#include “stdio.h”#include “stdlib.h”#include “iostream.h”#define MAXSTRLEN 255 // 用户可在255以内定义最大串长typedef unsigned char SString[MAXSTRLEN+1]; // 0号单元存放串的长度void get_next(SSt原创 2020-09-02 22:30:21 · 357 阅读 · 0 评论 -
SCAU------8581 线性链表逆置
Description线性链表的基本操作如下:#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define ElemType inttypedef int Status;typedef struct LNode{int data;struct LNode *next;}LNode,*LinkList;Status ListInsert_L(LinkList &L, int原创 2020-08-31 02:18:51 · 565 阅读 · 0 评论 -
SCAU------17263 计算二叉树的第k层中所有叶子结点个数
Description二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,’#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点),编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2层,依次类推。#include “stdio.h”#include “malloc.h”#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASI原创 2020-06-08 06:28:24 · 688 阅读 · 0 评论 -
SCAU------8608 实现二叉排序树的各种算法(2)
Description用函数实现如下二叉排序树算法:(1) 插入新结点(2) 前序、中序、后序遍历二叉树(3) 中序遍历的非递归算法(4) 层次遍历二叉树(5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0)(6) 交换各结点的左右子树(7) 求二叉树的深度(8) 叶子结点数输入格式第一行:准备建树的结点个数n第二行:输入n个整数,用空格分隔第三行:输入待查找的关键字第四行:输入待查找的关键字第五行:输入待插入的关键字输出格式第一行:二叉树的先序遍历序列第二行:二原创 2020-06-05 23:15:52 · 2651 阅读 · 0 评论 -
SCAU------8607 实现二叉排序树的各种算法(1)
Description 用函数实现如下二叉排序树算法:(1) 插入新结点(2) 前序、中序、后序遍历二叉树(3) 中序遍历的非递归算法(4) 层次遍历二叉树(5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0)输入格式第一行:准备建树的结点个数n第二行:输入n个整数,用空格分隔第三行:输入待查找的关键字第四行:输入待查找的关键字第五行:输入待插入的关键字输出格式第一行:二叉树的先序遍历序列第二行:二叉树的中序遍历序列第三行:二叉树的后序遍历序列第四行:查找结果第五行原创 2020-06-05 21:29:39 · 547 阅读 · 0 评论 -
SCAU------9497 利用递归实现查找中序遍历序列中第i个结点
Description创建一棵具有若干结点的二叉排序树,对其进行前、中、后序遍历并输出。最后查找中序遍历序列中第i个结点。#include “stdio.h”#include “malloc.h”#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;typede原创 2020-06-05 16:06:15 · 309 阅读 · 0 评论 -
SCAU------9499 删除线性表中所有值小于x的元素
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: G++;GCCDescription已知长度为n的线性表采用顺序存储结构。写一算法,删除线性表中所有值小于x的元素。输入格式第一行 输入表长第二行 输入指定表长的整数第三行 输入一个整数输出格式第一行 表中的数据第二行 处理后的表中的数据输入样例85 3 4 9 8 7 6 25输出样例5 3 4 9 8 7 6 25 9 8 7 6单链表法:#include<iostream>u原创 2020-06-05 15:36:49 · 562 阅读 · 0 评论 -
SCAU------9498 删除单链性表中值相同的多余结点
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: G++;GCCDescription写一算法,删除单链性表中值相同的多余结点。即若链表中有多个结点具有相同的数据域值,只保留最后一个,其余结点均从链表中删去,使得最后得到的链表中的所有结点的数据域都不相同输入格式第一行 输入表长第二行 输入上一行指定的整数输出格式第一行 表中的数据第二行 处理后的表中的数据输入样例125 3 1 4 1 9 8 9 5 7 6 2输出样例5 3 1 4 1 9 8 9 5原创 2020-06-05 10:53:10 · 383 阅读 · 0 评论 -
SCAU------18724 二叉树的遍历运算(先序和中序推后序)
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: 不限定Description二叉树的三种遍历都可以通过递归实现。如果我们知道一棵二叉树的先序和中序序列,可以用递归的方法求后序遍历序列。输入格式两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。输出格式一个字符串,树的后序序列。输入样例abcdebcade输出样例cbeda解题思路:对于一个先序遍历结果为(abcde),中序遍历结果为(bcade)原创 2020-06-04 23:58:52 · 3151 阅读 · 2 评论 -
SCAU------8647 实现图的存储结构
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: G++;GCCDescription实现有向图的邻接矩阵存储结构。输入格式第一行:输入图的顶点个数n(各个顶点的默认编号为1~n), 边的条数m。第二 ~ m+1行:每行输入两个顶点编号i、j,表示连接顶点i到顶点j的一条边。输出格式分n行输出n*n的邻接矩阵,表示所输入的图存储,顶点i和顶点j之间如果有边相连,则输出1,没边相连则输出0。输入样例4 41 21 33 44 1输出样例0 1 1原创 2020-05-21 19:07:59 · 652 阅读 · 0 评论 -
SCAU------8646 基数排序
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: G++;GCCDescription用函数实现基数排序,并输出每次分配收集后排序的结果输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式每行输出每趟每次分配收集后排序的结果,数据之间用一个空格分隔输入样例10278 109 063 930 589 184 505 069 008 083输出样例930 063 083 184 505 278 008 109 589原创 2020-05-21 12:46:54 · 1292 阅读 · 0 评论 -
SCAU------8644 堆排序
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: G++;GCCDescription用函数实现堆排序,并输出每趟排序的结果输入格式第一行:键盘输入待排序关键的个数n第二行:输入n个待排序关键字,用空格分隔数据输出格式第一行:初始建堆后的结果其后各行输出交换堆顶元素并调整堆的结果,数据之间用一个空格分隔输入样例105 4 8 0 9 3 2 6 7 1输出样例9 7 8 6 4 3 2 5 0 18 7 3 6 4 1 2 5 0 97 6 3 5原创 2020-05-20 10:54:05 · 886 阅读 · 0 评论 -
SCAU------8609 哈夫曼树
时间限制:1000MS 代码长度限制:10KB题型: 编程题 语言: G++;GCCDescription 利用静态链表建立赫夫曼树,建树过程中要求左子树权值小于右子树权值,求各结点的编码。要求:叶子结点的个数n及结点值由键盘录入。本题给出程序代码,要求修改以满足测试要求.#include “stdio.h”#include “malloc.h”#include “string...原创 2020-04-24 16:41:02 · 1277 阅读 · 0 评论