自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 #swust oj 1067: 有向图的邻接表存储强连通判断

1067: 有向图的邻接表存储强连通判断**思路:若i和k且k和j之间联通,那么i和j之间也必定联通,可以三重循环暴力处理,a[u][v]的值为1或0,表示u和v之间是否连通**题目描述假设有向图G采用邻接表存储,设计一个算法,判断图G是否是强连通图。若是则返回yes;否则返回no。(图中顶点信息为整型数据。)输入第一行为图中顶点的个数n;第二行为图的边的条数e;接下来e行,每行是一条边依附的两个顶点信息。输出强连通图输出yes,否则输出no.样例输入570 11 21 3

2020-06-09 23:30:16 1519 1

原创 #swust oj 1065: 无向图的连通分量计算

1065: 无向图的连通分量计算思路:1.利用图的深度优先搜索(DFS):从图中的某个顶点出发,访问此顶点,然后从v的未被访问的邻接点出发深度优先遍历图,若图中有顶点未被访问,则另选一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。若是连通图则只会执行一次,所以利用DFS对图进行搜索,对只执行一次的连通图进行计数,即为无向图中连通分量的个数。题目描述假设无向图G采用邻接矩阵存储,编写一个算法求连通分量的个数。输入第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1

2020-06-09 19:36:36 3044 2

原创 #swust oj1051,1052,1053和1105出利用先序遍历创建的二叉树中的指定结点的孩子结点,双亲结点,度,交换二叉树的孩子节点

1051: 输出利用先序遍历创建的二叉树中的指定结点的孩子结点题目描述利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的儿子结点。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#“时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的儿子结点。注意输入数据序列中的”#“字符和非”#“字符的序列及个数关系,这会最终决定创建的二叉树的形态。输入输入用例分2行输入,第一行接受键盘输入的由大写英文字符和”#“字符构成的一个字符串(用于创建对应的二叉树),第二行为指

2020-06-03 16:44:54 1190

原创 swust oj987: 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果

987: 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果思路:1.完全二叉树是依次排列的,我们按层次遍历,找到第一个空节点,如果之前等于总结点,就是,否则不是。2.用队列层次遍历题目描述利用先序递归遍历算法创建二叉树并判断该二叉树是否为完全二叉树。完全二叉树只能是同深度的满二叉树缺少最后一层倒数连续个叶子结点。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大

2020-05-29 18:30:43 1188

原创 swust oj 983和984 利用二叉树中序及后序遍历确定该二叉树的先序序列

思路:1.983:当前树的后续遍历的最后一个元素肯定是根节点。中序遍历中根节点左边是左子树,右边是右子树,递归处理。2.984:当前树的先续遍历的第一个元素肯定是根节点。中序遍历中根节点左边是左子树,右边是右子树,递归处理。3.两种方法进行顺序相反983: 利用二叉树中序及后序遍历确定该二叉树的先序序列题目描述已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其

2020-05-29 11:34:24 1662 1

原创 #swust oj 981和982 统计利用二叉树存储的森林中树的棵数和 输出利用二叉树存储的普通树的度

这两题是二叉树与树之间的转换问题981: 统计利用二叉树存储的森林中树的棵数思路:找根节点的右儿子,再找右儿子的右儿子,直到没有右儿子为止,这些右儿子的总数就是棵数。题目描述普通树及其构成的森林均可转换成相应的二叉树,反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的森林中树的棵数。相应的二叉树可利用先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点

2020-05-26 18:25:39 949

原创 #swust oj978,979,980输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序

输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序列***层次遍历思路:1.初始化一个队列2.把根节点指针入队3.队列非空时:出队列取得一个结点指针,访问该节点,若该节点的左子树非空,则将该节点的左子树入队,若该节点的右子树非空,则将该节点的右子树入队。4.不断循环直到队列为空题目描述利用先序递归遍历算法创建二叉树并输出该二叉树的中序遍历序列。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该

2020-05-24 12:53:57 1848

原创 swust oj 973,975,976,977统计利用先序遍历创建的二叉树叶结点,度为2结点,度为1,空链域结点的个数,

973: 统计利用先序遍历创建的二叉树叶结点的个数思路:1.叶节点即是左孩子和右孩子都空的节点注:叶节点个数sum必须要用全局变量题目描述利用先序递归遍历算法创建二叉树并计算该二叉树叶结点的个数。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#“时表示该结点不需要创建,否则创建该结点。最后再统计创建完成的二叉树叶结点的个数。需要注

2020-05-20 23:52:31 809

原创 #swust oj971 和972统计利用先序遍历创建的二叉树的深度和宽度

971: 统计利用先序遍历创建的二叉树的深度思路:1.先序递归遍历创建二叉树2.当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点3.最后后序遍历算法统计二叉树深度注:1.求根节点左和右子树的深度,最后比较两者要加1题目描述利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据

2020-05-19 17:11:12 1638 1

#swust oj 1027 舞伴问题

1027: 舞伴问题思路:1.两个队列,先分别入队,再循环num-1次队头元素出队列再重新入队到队尾,num次取两个队列的队头元素注意:1.初始化 Q->Maxsize=n+1;//n+1因为要浪费一个结点2,用%s输入可以避免空格进入,题目描述假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求编写程序实现舞伴问题。输入输入一共5行,第一行是男生人数m;第二

2020-05-14 09:30:49 1255

原创 #swust oj 966 打印杨辉三角形

966: 打印杨辉三角形思路:1.用第6个规律,一个队列,每一行的元素进队后再出队x=12.第一个元素1与后面分开进队x1=x1(j-i)/i;//按规律来(不能写成x1=x1(j-i)/i**题目描述杨辉三角形具有如下特征:1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。2、第n行的数字个数为n个。3、第n行数字和为2^(n-1)。4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。5、将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数

2020-05-13 18:46:49 754

原创 #swust oj 965 循环队列

965: 循环队列思路:1.基本操作2.注意:输入char a[](即判断进队还是出队),用第一个字符a[0]判断3.在最后输出时,可先取队头元素,然后队头元素出队,Q非零时循环进行题目描述根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成,少用一个存储空间的方法区分队列的空和满。

2020-05-13 00:01:25 1884

原创 swust oj943: 顺序表插入操作的实现

943: 顺序表插入操作的实现题目描述建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型)输入第一行为顺序表的长度n;第二行为顺序表中的数据元素;第三行为指定的数据元素item;第四行为要插入的数据元素data;输出输出结果为顺序表中的数据元素。样例输入1010 20 3...

2020-05-12 23:03:57 1914 1

原创 #swust oj 955 单链表上查找算法的实现

955: 单链表上查找算法的实现题目描述建立一个长度为n的带头结点的单链表,在该表中寻找第i个结点,若找到,则输出ok,否则输出error。处理数据类型为整型。输入第一行为链表的长度n;第二行为链表中的数据元素;第三行为要找的结点i。输出找到就输出ok,没找到就输出error。样例输入101 2 3 4 5 6 7 8 9 105样例输出ok思路:1.建表2.查找:先判断输入合法,若不合法则输出error,合法则继续查找i,用指针p表示i-1个结点,p->next为i

2020-05-12 09:04:05 877

原创 蓝桥1030二维数组的转置

题目 1030: [编程入门]二维数组的转置时间限制: 1Sec 内存限制: 128MB 提交: 10540 解决: 6595题目描述写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。输入一个3x3的矩阵输出无样例输入1 2 34 5 67 8 9样例输出1 4 72 5 83 6 9#include<stdio.h>int f(int a[...

2020-04-30 10:14:50 253

原创 蓝桥 1028自定义函数求一元二次方程

题目 1028: [编程入门]自定义函数求一元二次方程时间限制: 1Sec 内存限制: 128MB 提交: 9069 解决: 4883题目描述求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。输入a b c输出x1=? x2=?样例输入4 1 1样例输出x1=-0.125+0.484i x2=-0.125-0...

2020-04-29 19:02:21 341

原创 蓝桥 1021迭代法求平方根

题目 1021: [编程入门]迭代法求平方根时间限制: 1Sec 内存限制: 128MB 提交: 10184 解决: 5510题目描述用迭代法求 平方根公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数输入X输出X的平方根样例输入4样例输出2.000一、何为迭代法迭代法也称辗...

2020-04-29 17:26:50 388

原创 蓝桥 1017完数判断

题目 1017: [编程入门]完数的判断时间限制: 1Sec 内存限制: 128MB 提交: 17243 解决: 8013题目描述一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子输入N输出? its factors are ? ? ?样例输入10...

2020-04-28 20:32:16 218

原创 蓝桥1011最大公约数和最小公倍数

题目描述输入两个正整数m和n,求其最大公约数和最小公倍数。输入两个整数输出最大公约数,最小公倍数样例输入5 7样例输出1 35#include<stdio.h>//法一:易理解int main(){ int m,n,dy,xb; scanf("%d%d",&m,&n); if(n>m)//先确保m是较大的数 ...

2020-04-24 22:11:00 259

原创 蓝桥1009数字的处理与判断

题目描述给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123输入一个不大于5位的数字输出三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数样例输入12345样例输出51 2 3 4 554321#include<stdio.h>#i...

2020-04-23 19:42:53 220

原创 SWUST OJ 1043利用栈完成后缀表达式的计算

题目描述后缀表达式不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *。利用栈结构,将后缀表达式的结果计算出来。输入后缀表达式。以#号作为表达式结束标志。为了简单,处理的数据为0-9的整数。输出计算结果。样例输入3 6 6 2 / - 3 * +#样例输出12算法...

2020-04-21 10:11:19 1170

原创 SWUST OJ1044&1046顺序栈&链栈基本操作实现

题目描述编程实现顺序栈的初始化、入栈、出栈、取栈顶元素和计算栈中元素个数等基本操作。输入第一行为入栈元素的个数; 第二行依次为入栈的元素; 出栈操作的次数n.输出输出n次出栈后的栈顶元素值。如果是空栈,输出-1.样例输入41 2 3 42样例输出2#include<stdio.h>#include<stdlib.h>#define Max 100...

2020-04-19 11:02:10 1539 1

原创 swust oj962括号匹配问题 堆栈

题目描述假设表达式中允许包含两种括号:圆括号和方括号。编写一个算法判断表达式中的括号是否正确配对。输入由括号构成的字符串,包含”(“、”)“、”[“和”]“。输出如果匹配输出YES,否则输出NO。样例输入[([])]样例输出YES#include<stdio.h>#include<stdlib.h>#include<string.h>#...

2020-04-18 21:54:42 847

原创 swust oj961堆栈进制转换

建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。输入输入只有一行,就是十进制整数。输出转换后的二进制数。样例输入10样例输出1010#include<stdio.h>#include<stdlib.h>#define Max 1000typedef struct{ int stack[Max]; int top;}Seqs...

2020-04-18 17:33:23 760

原创 SWUST OJ 1045集合交运算的实现

1045: 集合的交运算的实现题目描述假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。编程实现集合A和集合B的交运算。输入第一行为集合A的数据元素个数n;第二行输入n个集合A的数据元素 ;第三行为集合B的数据元素的个数;第四行输入m个集合B的数据元素输出A和B的交集样例输入80 5 6 3 8 7 9 1071 ...

2020-04-14 11:40:18 808

原创 SWUST OJ 1037集合并运算实现

1037: 集合的并运算的实现题目描述假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。编程实现集合A和集合B的并运算。输入第一行为集合A的数据元素个数n 第二行输入n个集合A的数据元素 第三行为集合B的数据元素的个数; 第四行输入m个集合B的数据元素。输出第一行为A和B的并集.样例输入80 5 6 3 8 7 9 107...

2020-04-14 11:21:24 992

原创 SWUST OJ 1039 单链表的信息分类

1039: 单链表中信息的分类题目描述已知L为设有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其他字符。编写程序构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符,最后输出链表中的信息。输入链表中的数据元素;输出第一行为数字链表中的信息; 第二行为英文字母字符链表中的信息; 第三行为其它字符链表中的信息。样例输入...

2020-04-14 10:39:42 1509 1

原创 swust oj 1038顺序表重复数据的删除

题目描述将存储在顺序表中的长度为n的线性表中指定的数据全部删除。输入第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定要删除的元素值。输出如果表不空,输出删除指定值后的线性表;如果删除后表空,则输出-1。样例输入811 22 33 44 44 55 44 6644样例输出11 22 33 55 66#include<stdio.h>//两种方法...

2020-04-11 10:31:42 682

原创 swust oj1103删除顺序表指定区域的数据

1103: 删除顺序表中指定区间的数据题目描述建立顺序表L,将指定区间的数据从顺序表中删除。假设指定区间是合法数据,无序做合法性判断。测试数据为整型。输入第一行是表长n;第二行是表中数据元素;第三行是闭区间。输出删除以后的顺序表中的数据元素。样例输入1022 32 11 23 43 59 17 65 45 5710 20样例输出22 32 23 43 59 65 45 57...

2020-04-09 18:03:12 515

原创 SWUST OJ1102顺序表数据划分问题

题目描述建立一个顺序表L,然后以第一个为分界,将所有小于等于它的元素移到该元素的前面,将所有大于它的元素移到该元素的后面。输入顺序表长度n;顺序表中的数据元素。输出移动后的数据元素。样例输入1032 5 22 43 23 56 54 57 11 25样例输出25 11 23 22 5 32 43 56 54 57#include<stdio.h>//oj 110...

2020-04-09 17:34:09 996

原创 SWUST OJ 617: 班级课程成绩计算

题目描述一个班有N名学生,每个学生修了五门课。 1)求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值。 2)求某门课程的平均分; 1、分别编写2个函数实现以上2个要求。 2、第1个函数用数组名作参数。第2个函数用指针作参数,并在函数体内用指针对数组操作。输入第一行:输入N,代表N名学生 下面N行,每行有6个数据分别为:学号,英语成绩,数学成绩,C++成绩,音乐成绩,美术成绩...

2020-04-02 17:11:09 5397

原创 SWUST #OJ 171字符串的倒序

设计函数,实现字符串的倒序输出样例输入TomorrowYesterdayTodayTomorrowisantherday!Debug\ee.exeee-MicrosoftVisualC+±[ee.cpp]样例输出worromoTyadretseYyadoT!yadrehtnasiworromoTexe.ee\gubeD]ppc.ee[-++ClausiVtfosorci...

2020-03-29 14:59:15 916

原创 SWUST OJ#288 统计出现最多次的字母

译文描述给定一个只有小写英文字母组成的字符串,串长为n。请您编写程序求出这个字符串中出现次数最多的字母。输入输入有两行:第一行是一个正整数n(1 <n <100)表示字符串的长度。后面一行是一个长度为n的字符串(只由小写字母组成)。测试用例保证出现次数最多的字母只有一个。输出输出一行,仅输出出现次数最多的字母。样例输入复制5acmsc样例输出c#include&...

2020-03-26 17:58:42 3860 1

原创 SWUST OJ#287 one+two

题目描述读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。输入测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。输出对每个测试用例输出1行,即A+B的值。样例输入复制one + two =three four + five six =...

2020-03-26 16:56:33 3341 7

原创 SWUST OJ#74 矩阵相乘

译文描述将两个给定的间距阵(3 * 3)相乘得到另一个间距阵并将其打印出来。输入输入两个大小为3 * 3的距阵输出输出一个大小为3 * 3的间距阵列,矩阵每一行相邻的两个数字之间由一个间隔隔开。具体的请详见Sample Output样例输入复制1 2 3 3 2 1 1 1 11 1 1 1 2 3 1 2 3样例输出6 11 166 9 123 5 7#include...

2020-03-25 21:45:15 3487

原创 SWUST OJ 619 蟠桃记

译文描述喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵-当时的情况是这样的:第一天悟空吃掉桃子总计一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算...

2020-03-25 21:20:29 1465

原创 SWUST OJ#321阶乘和#299平方和

一:阶乘阶乘(factorial)是基斯顿·卡曼(Christian Kramp,1760 – 1826)于1808年发明的运算符号。任何大于1的自然数n阶乘可以表示为以下形式:n!= n×(n-1) !另外,数学家定义,0!= 1,所以0!= 1!你的任务是编写一个程序来计算一个给定数字n的阶乘n!(n <14)输入输入数据只有一行,即数字n的值,(n <14)。输出要求输...

2020-03-25 18:28:16 1495

原创 SWUST OJ#281逃跑的蠕虫

题目描述装在瓶子的蠕虫都想从瓶子底部向瓶口处爬出去。它每分钟向上爬行u厘米,之后会休息一分钟,这一分钟它会向下滑行d厘米,当蠕虫到了瓶口或者超出瓶口后便出了瓶口,成功逃离(每分钟计算一次位置)。编写一个函数,帮助蠕虫计算它在什么时候能够爬出瓶子。输入连续输入多个的实例,每一个实例输入三个正整数分别代表n,u和d,其中d < n ,n < 60000,当输入三个0时表明输入停止。(...

2020-03-25 18:01:45 4173 1

原创 SWUST OJ#82 求组合数

题目描述编写一个函数,求从n 个不同的数中取r 个数的所有选择的个数。输入输入n 和r 的值; 当用户输入0 0 时,程序结束。输出根据公式: C(n,r) = C(n, r-1) * (n - r + 1) / r 输出运算结果 输入数据不满足题意时候,输出"error!"样例输入复制5 310 2050 30 0样例输出10error!19600#include...

2020-03-25 17:39:46 4770

原创 SWUST OJ#276 简单的计算机

译文描述一个具有两个数加减乘除功能的计算器。输入输入有多组情况表达式如a + b,a,b为个位数输出输出表达式和结果样例输入复制5 + 69/85 * 22-3样例输出5 + 6 = 119/8 = 15 * 2 = 102-3 = -1#include<stdio.h>int main(){ int a,b; char c;//...

2020-03-25 17:13:15 733

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除