- 博客(53)
- 收藏
- 关注
原创 数据结构(目录导航)
文章目录静态法 、 带头结点动态法、 不带头结点静态法实现顺序表(C/C++)动态法实现顺序表(C/C++)单链表(带头结点)(C/C++)链式队列(不带头结点 )(C/C++)双链表(C/C++)循环链表&&静态链表(C/C++)顺序栈(C/C++)共享栈(C/C++)链栈(带头结点)(C/C++)链栈(不带头结点)(C/C++)顺序队列(C/C++)–链式队列(带头结点)(C/C++)链栈(不带头结点)(C/C++)
2021-08-19 18:02:27
237
原创 链式队列(不带头结点 )(C/C++)
文章目录0.定义链式队列的基本结构1.初始化链式队列(不带头结点)2.判断队列是为空(不带头结点)3.入队(不带头结点)4.出队(不带头结点)完整代码0.定义链式队列的基本结构/*0.定义链式队列的基本结构*/typedef struct LinkNode { //链式队列结点 ElemType data; struct LinkNode* next;}LinkNode;typedef struct { //链式队列 LinkNode* front, * rear; //队列的队头和队尾指
2021-08-19 16:28:24
2314
原创 链式队列(带头结点)(C/C++)
文章目录0.定义链式队列的基本结构1.初始化链式队列2.判断队列是为空3.入队4.出队完整代码0.定义链式队列的基本结构/*0.定义链式队列的基本结构*/typedef struct LinkNode { //链式队列结点 ElemType data; struct LinkNode* next;}LinkNode;typedef struct { //链式队列 LinkNode* front, * rear; //队列的队头和队尾指针}LinkQueue;1.初始化链式队列/*1
2021-08-19 16:23:02
547
原创 顺序队列(C/C++)
文章目录一般队列0.定义队列的基本结构1.初始化队列2.判断队列空3.入队4.出队顺序队列的完整代码循环队列0.定义循环队列的基本结构1.初始化队列2.判断队列空3.入队4.出队循环队列的完整代码一般队列0.定义队列的基本结构/*0.定义队列的基本结构*/typedef struct { ElemType data[Maxsize]; //用静态数组存放队列元素 int front, rear; //队头指针与队尾指针}SqQueue;1.初始化队列/*1.初始化队列*/void In
2021-08-18 20:37:26
1206
原创 链栈(带头结点)(C/C++)
文章目录0.链栈的数据结构定义1.链栈的初始化2.进栈3.出栈4.读取栈顶元素5.判空全部代码0.链栈的数据结构定义/*0.链栈的数据结构定义*/typedef struct LinkNode { ElemType data; struct LinkNode* next;}LinkNode, * LinkStack;1.链栈的初始化/*1.链栈的初始化*/Status InitStack(LinkStack& S){ S = (LinkStack)malloc(sizeof
2021-08-15 16:15:18
583
1
原创 链栈(不带头结点)(C/C++)
文章目录0.链栈的数据结构定义1.链栈的初始化2.进栈3.出栈4.读取栈顶元素5.判空全部代码0.链栈的数据结构定义/*0.链栈的数据结构定义*/typedef struct LinkNode { ElemType data; struct LinkNode* next;}LinkNode, * LinkStack;1.链栈的初始化/*1.链栈的初始化*/void InitStack(LinkStack& S){ S = NULL; //将头指针指向NULL}2.进栈
2021-08-15 14:55:30
1374
原创 共享栈(C/C++)
文章目录1.共享栈的定义2.初始化共享栈全部代码1.共享栈的定义typedef struct{ ElemType data[Maxsize]; //静态数组存放栈中元素 int ltop; //栈顶指针(指向栈的底部) int htop; //栈顶指针(指向栈的顶部)}ShStack;2.初始化共享栈/*初始化共享栈*/void InitStack(ShStack& S){ for (int i = 0; i < Maxsize; i++) S.data[i] =
2021-08-14 17:58:10
723
原创 顺序栈(C/C++)
文章目录1.定义栈的结构2.栈的初始化3.判断栈空4.入栈5.出栈6.读栈顶全部代码1.定义栈的结构typedef struct{ ElemType data[Maxsize]; //静态数组存放栈中元素 int top; //栈顶指针}SqStack;2.栈的初始化/*初始化栈*/void InitStack(SqStack& S){ for (int i = 0; i < Maxsize; i++) S.data[i] = 0; S.top = -1; //初
2021-08-14 17:35:29
359
原创 循环链表&&静态链表(C/C++)
循环单链表//循环单链表(带头结点) Circular singly linked list#include<stdio.h>#include<stdlib.h>typedef int Elemtype;typedef int Status;typedef struct CSLNode{ Elemtype data; struct CSLNode* next;}CSLNode, * CSLinkList;//初始化一个循环单链表Status InitCS
2021-08-07 21:45:34
176
原创 双链表(C/C++)
//双链表#include<stdio.h>#include<stdlib.h>typedef int Elemtype;typedef int Status;typedef struct DNode{ Elemtype data; struct DNode* prior, * next;}DNode, * DLinkList;//初始化双链表Status InitDLinkList(DLinkList& L){ L = (DNode*)mal
2021-08-05 17:30:03
150
原创 单链表(无头结点)(C/C++)
带头结点与不带头结点的单链表,在进行操作时有哪些区别呢?当对单链表的表首元素进行删除或插入操作时,要进行区别处理,无头结点的单链表进行头指针的更新。带头结点的单链表,无论单链表是否为空链表,头指针都指向头结点。不带头结点的单链表,当单链表为非空链表时,头指针指向链表第一个结点(LNode),当单链表为空链表时,头指针指向空(NULL)。//不带头结点的链表#include<stdio.h>#include<stdlib.h>typedef int Elemtype;
2021-08-04 20:51:13
1618
原创 单链表(带头结点)(C/C++)
//带头结点的单链表#include<stdio.h>#include<stdlib.h>typedef int Elemtype;typedef int Status;//创建单链表结点typedef struct LNode{ Elemtype data; struct LNode* next;}LNode, * LinkList;//对单链表进行初始化bool InitList(LinkList& L){ L = (LNode*)mal
2021-07-30 22:33:11
244
原创 动态法实现顺序表(C/C++)
/*动态法实现顺序表的基本操作*/#include<stdio.h>#include<stdlib.h> //malloc函数与free函数#define InitSize 5 //顺序表的初始容量typedef int Elemtype;typedef int status;/*使用动态法定义顺序表,初始化*/typedef struct{ Elemtype* data; int maxsize;//动态法实现顺序表的容量最大值 int length;//
2021-07-12 20:08:23
221
原创 静态法实现顺序表(C/C++)
写在最前面:本人使用Visual Studio 2019进行调试,该编译器限制使用“scanf()”函数,代替为更安全的“scanf_s()”;虽然代码延续的是C语言的风格,但是代码后缀最好是“.cpp”,因为有些语句是C++的,比如for (int i = 0; i < L.length; i++),i变量没有提前声明。测试部分的k,只是用来接收不同变量的形参,不想为每一个变量都其一个名字了,索性就都使用了k/*静态法实现顺序表的基本操作*/#include<stdio.h>
2021-07-12 17:49:11
241
《计算机算法设计与分析》小例题
1:全排列函数#include<iostream>#include<cstring>#include<algorithm>using namespace std;int ans=0;void swap(char &a,char &b){ char temp; temp=a; a=b; b=temp;}int cherk(...
2019-12-21 21:14:44
282
原创 习题 2-2 韩信点兵 (hanxin)(C语言版)
习题描述:相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a&amp;amp;amp;lt;3, b&amp;amp;amp;lt;5, c&amp;amp;amp;lt;7),输出总人数的最小值(或者报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止。” 样例输入:
2019-10-14 23:46:34
6945
原创 7-60 藏尾诗 (20 分)(C语言)
7-60 藏尾诗 (20 分)本题要求编写一个解密藏尾诗的程序。输入格式:输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。输出格式:取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:悠悠田园风然而心难平兰花轻涌浪兰香愈幽静输出样例:风平浪静参考代码一:#inc...
2019-07-15 11:55:26
3360
转载 辗转相除法求最大公约法
相关知识 约数如果数 a 能被数 b 整除,a 就叫做 b 的倍数,b 就叫做 a 的约数。最大公约数最大公约数就是两个数中,大家都能相约且最大的数。辗转相除法辗转相除法又名欧几里得算法(Euclidean algorithm),目的是求出两个正整数的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。这条算法基于一个定理:两个正整数 a 和 b(a 大于 b...
2019-07-15 11:50:48
606
原创 蓝桥杯(2014)
题1:#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; using namespace std;int main() { for(int i=1;i&amp;amp;amp;amp;
2019-03-23 21:09:46
98
原创 蓝桥杯(2015)
题一:奖券数目#include&lt;iostream&gt;using namespace std;int ans=0;int got(int i){ int a,k=5; while(k--) { a=i%10; if(a==4) { return 0; break; } i=i/10; } return 1;}int main(){...
2019-03-23 09:05:48
74
原创 蓝桥杯-带分数(C++版)
问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种...
2019-03-07 17:55:00
2168
3
原创 7-26 帅到没朋友 (20 分)(C语言版)
7-26 帅到没朋友 (20 分)当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。输入格式:输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格...
2019-02-17 16:17:26
6383
6
原创 7-63 字符串循环左移 (20 分)(C语言版)
7-63 字符串循环左移 (20 分)输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。输入样例:Hello World!2输出样例:llo World!He思路:解决编程问题时,注重数学工具,后面有模板思路参考代码:...
2019-01-23 11:14:14
2244
原创 7-29 学生成绩排序 (15 分)(C语言版)
7-29 学生成绩排序 (15 分)假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n<50)个学生的成绩信息,按照学生的个人平均分从高到低输出他们的信息。如果平均分相同,按输入的先后顺序排列。输入格式:输入一个正整数n(n<50),下面n行输入n个学生的信息,包括:学号、姓名、三门课程成绩(整数)。输出格式:输出从...
2019-01-04 11:13:22
24284
6
原创 7-11 出租 (20 分)(C语言版)
7-11 出租 (20 分)下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号...
2019-01-02 22:48:51
8036
3
原创 7-8 字符串的冒泡排序 (20 分)(C语言版)
7-8 字符串的冒泡排序 (20 分)我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。输出格式:输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一...
2018-12-30 12:13:55
2429
原创 7-6 圆形体体积计算器 (20 分)(C语言版)
7-6 圆形体体积计算器 (20 分)输入格式:在每次计算之前,要求输出如下界面:1-Ball2-Cylinder3-Coneother-ExitPlease enter your command:然后从标准输入读进一个整数指令。输出格式:如果读入的指令是1或2或3,则执行相应的体积计算;如果是其他整数,则程序结束运行。当输入为1时,在计算球体体积之前,打印Please e...
2018-12-29 16:37:03
8778
原创 分数拆分问题(C语言版)
#include&amp;lt;stdio.h&amp;gt;int main() { int k,x,y,i=0,j; scanf(&quot;%d&quot;,&amp;amp;k); int a[k][2]; for(y=k+1;y&amp;lt;=2*k;y++) { if((k*y)%(y-k)==0) { a[i][0]=(k*y)/(y-k); a[i][1]=y
2018-12-29 16:22:46
4800
原创 素数环问题(C语言)
题目描述把从1到n的正整数排成一个环,使环中任何相邻的两个数之和都为素数,从1开始在一行输出一个符合条件的数环,按字典序输出所有符合条件的数环。n不大于9。输入一行输入一个正整数n,遇到文件末尾结束。输出从1开始在每行输出一个符合条件的数环,按字典序输出所有符合条件的数环,数和数之间不加空格。样例输入4样例输出12341432参考代码#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;...
2018-12-11 17:45:32
7996
3
原创 问题 e: Let the Balloon Rise(C语言版)
题目描述Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges’ favorite time is guessing the most popular problem. When the contest is over, they wil...
2018-12-03 11:06:02
1331
2
原创 问题 c: 统计元音的次数(C语言版)
题目描述统计每个元音字母在字符串中出现的次数。输入输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。输出a:num1e:num2i:num3o:num4u:num5样例输入2aeioumy name is ignatius样例输出a:1e:1i:1o:1u:1a:2e:1i:3o:0u:1参考代码#include...
2018-11-27 17:20:41
5184
原创 问题 S: 除法问题(C语言版)
题目描述输入正整数n,遇到文件末尾结束。按从大到小顺序输出所有形如abcde/fghij=n的表达式,其中a到j恰好为数字0到9的一个排列(可以有前导0),无解输出“no answer”,n在2到79之间。输入一行输入一个整数n。输出形如abcde/fghij=n的表达式。样例输入62样例输出79546 / 01283 = 6294736 / 01528 = 62参考代码#...
2018-11-13 22:28:29
3193
原创 最大乘积问题(C语言版)
题目描述输入n个元素组成的序列s,找出一个乘积最大的连续子序列,输出最大乘积的值。如果这个最大乘积不是正数,输出0。n小于18,每个元素值的绝对值不大于10。输入先输入n的值,再依次输入n个数的序列,遇到文件末尾结束。输出在一行输出最大乘积的值。样例输入52 5 -1 2 -1样例输出20参考代码#include&lt;stdio.h&gt;int main(){ i...
2018-11-12 13:54:44
6600
2
原创 7-1 最大子列和问题(C语言版)
#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;int main(){ int n,i,sum=0; scanf(&amp;amp;quot;%d&amp;amp;quot;,&amp;amp;amp;amp;n); int s[n]; for(i=0;i&amp;amp;amp;lt;n;i++) { scanf(&
2018-11-08 18:25:20
463
原创 猜数字游戏的提示(C语言版)
题目描述实现一个经典&amp;quot;猜数字&amp;quot;游戏。 给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。输入输入包含多组数据。 每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。 猜测序列全0时该组数据结束。 n=0时输入结束。输出看样例。样例输入41 3 5 51 1 2 34 3 3 56 5 5 16 1 3 5...
2018-10-31 00:49:50
4977
8
原创 7-14 螺旋方阵(C语言版)
7-14 螺旋方阵 (20 分)所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(&lt;10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例:1 2 3 4 516 17 18 19 615...
2018-10-26 22:21:34
2822
原创 7-3 装箱问题(C语言版)
7-3 装箱问题 (20 分)假设有N项物品,大小分别为s1、s2、…、si、…、sN,其中si为满足1≤si≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输...
2018-10-26 11:22:08
12605
3
原创 7-59 矩阵A乘以B(C语言版)
7-59 矩阵A乘以B (15 分)给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有...
2018-10-25 19:28:20
11582
6
原创 7-42 逆序的三位数(C语言版)
7-42 逆序的三位数 (10 分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321参考代码#include&lt;stdio.h&gt;int main(){ int n,a,b,c,...
2018-10-25 12:27:56
955
1
原创 7-16 找完数(C语言版)
7-16 找完数 (20 分)所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(1&amp;amp;lt;m≤n≤10000),中间以空格分隔。输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + …...
2018-10-24 20:53:34
18595
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人