- 博客(11)
- 收藏
- 关注
原创 基础练习 数列排序 C【蓝桥杯】
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式 输出一行,按从小到大的顺序输出排序后的数列。 样例输入58 3 6 4 9样例输出3 4 6 8 9感觉一般题目空间给的比较大,时间限制比较明显,就用的快速排序。函数调用的数组会对原的数组造成影
2020-07-20 18:10:22
413
原创 邻接表法创建无向图(C语言)
题目本题要求建立一个无向图,采用邻接表做为存储结构。 例如:输入信息为:第一行给出图的顶点数n和边数e。第二行给出n个字符,表示n个顶点的数据元素的值。后面是e行,给出每一条边的两个顶点编号。输出每个顶点的值以及各顶点的邻接点。输入样例:7 901234560 20 30 41 31 52 32 54 55 6输出样例:0: 4 3 21: 5 32: 5 3 03: 2 1 04: 5 05: 6 4 2 16: 5无向图还要生成对称节点#incl
2020-06-09 13:24:18
25229
11
原创 求二叉树的叶子结点个数(C语言)
输入格式:输入二叉树的先序序列。提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。输出格式:输出有两行:第一行是二叉树的中序遍历序列;第二行是二叉树的叶子结点个数。输入样例:ABC##DE#G##F###输出样例:CBEGDFA3和上一篇博客的题目类似:先序输入–>二叉链式–>中序遍历,这道题加了个求叶子节点。到此总结了二叉树的构造、求深度、结点、叶子节点、三种顺序遍历的算法,都在之前的几篇博客里。
2020-05-31 23:03:21
20033
3
原创 建立与遍历二叉树(C语言)
题目详情以字符串的形式定义一棵二叉树的先序序列,若字符是‘#’, 表示该二叉树是空树,否则该字符是相应结点的数据元素。读入相应先序序列,建立二叉链式存储结构的二叉树,然后中序遍历该二叉树并输出结点数据。输入样例:在这里给出一组输入。例如:ABC##DE#G##F###输出样例:在这里给出相应的输出。例如:CBEGDFA题目要求 先序输入,二叉链式存储,中序输出。注意函数CreateBiTree(&Tr)和InOrder(Tr)的区别:后者不对树本身进行操作#i
2020-05-31 22:24:55
4155
1
原创 求二叉树的深度(C语言)
函数接口定义:int Depth(BiTree T);T是二叉树树根指针,函数Depth返回二叉树的深度,若树为空,返回0。裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;BiTree Cre
2020-05-31 20:55:21
9073
1
原创 统计二叉树结点个数(C语言)
函数接口定义:int NodeCount ( BiTree T);T是二叉树树根指针,函数NodeCount返回二叉树中结点个数,若树为空,返回0。裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;
2020-05-31 20:48:23
10987
原创 二叉树的三种遍历(先序、中序和后序)
函数接口定义:void Preorder(BiTree T);void Inorder(BiTree T);void Postorder(BiTree T);T是二叉树树根指针,Preorder、Inorder和Postorder分别输出给定二叉树的先序、中序和后序遍历序列,格式为一个空格跟着一个字符。其中BinTree结构定义如下:typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNo
2020-05-31 20:42:55
3052
原创 堆栈模拟队列(C语言)
题目详情设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,入队和出队。输入格式输入
2020-05-17 11:23:54
2976
原创 输入带空格的字符串(C语言)
问题引入使用scanf(“%s”,str)时,如果输入的字符串内有空格,会导致读入的字符串到空格直接结束。解决方法1. 使用gets函数#include <stdio.h>int main(){ char str[100]; gets(str); printf("%s",str);}2. 使用scanf扫描集#include <stdio.h>int main(){ char str[100]; scanf("%[^\n]",str); pr
2020-05-13 19:00:02
2677
原创 括号匹配 (PTA)
题目详情给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。输入格式输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。输出格式如果括号配对,输出yes,否则输出no。输入样例1sin(10+20)输出 : yes输入样例2{[}]输出:no心得注意以下情况:·输入 123 输出 no·输入 [ ] (中间有空格) 输出 yes切身体会这种思路比较“
2020-05-13 17:43:33
2000
原创 堆栈操作合法性 (C语言)
题目详情假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式对每个序列,如果该序列是合法的堆栈操作序列 在一行中输出 YES,如果不是输出
2020-05-13 13:36:10
5753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人