自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 py序列 列表 元组 字典 集合

import matha=10b=20c=math.sqrt(a+b); #math 模块函数print(c)# 序列str='python'print(str[0],str[-6]) #索引 (-n -1)相当于(0 n-1)print(str[:3]) #切片 sname[start:end:step]print(str[3:]) #( start包含该项 end不包含)#列表l=[1024, 0.5,..

2022-04-06 16:26:31 193

原创 acw翻硬币

小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示最

2022-03-06 10:33:50 179

原创 递归实现组合型枚举

从1∼n1∼n这nn个整数中随机选出mm个,输出所有可能的选择方案。输入格式两个整数n,mn,m,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行11个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n>0n>0,0≤m≤n0≤m≤n,n+(n−m)≤25n+(n−m)≤25输入样例...

2022-03-01 19:12:12 167

原创 递归实现排列型枚举

把 1∼n1∼n 这 nn 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数 nn。输出格式按照从小到大的顺序输出所有方案,每行 11 个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤91≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1#include<cstdio>#include&lt

2022-01-26 18:27:21 97

原创 递归实现指数型枚举

从 1∼n1∼n 这 nn 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 nn。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 11 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤151≤n≤15输入样例:3输出样例:322 311 31 21 2 3给定多大的数字,就开一个多大的数组(范围限制为15).

2022-01-23 17:42:42 119

原创 二叉树的基础操作

创建typedef struct node{ char val; struct node *lc, *rc;}BiNode,*BiTree;char a[1024]; int i = 1;void Creat(BiTree &T){ char n; cin >> n; if (n == '#') T = NULL; else { T = new BiNode; T->val = n; Creat(T->lc); Creat(

2021-12-13 17:43:21 301

原创 折半查找(递归与非递归)

【问题描述】针对以非递增有序表表示的静态查找表,编写递归的折半查找算法。【输入形式】该静态查找表从下标1开始存放数据,存放数据按照非递增顺序,具体输入形式如下:5 //输入元素个数 33 29 25 20 12 //按照非递增顺序连续输入多个数,每个数之间用一个空格隔开 29 //输入需要查找的数【输出形式】如果找到则输出该数据在查找表中的下标,如果找不到则输出0...

2021-12-04 14:42:14 2807

原创 选择排序.单链表存储

选择排序思路:1. 到无序序列中最小(最大)的值 2. 与“无序序列”中的第一位值进行交换(则该值变为“有序序列”中的最后一位)(回顾单链表的创建与输出)#include<stdio.h>#include<iostream>#include<cstdlib>using namespace std;typedef struct node{ int data; struct node *next;}...

2021-12-04 11:20:07 373

原创 是否“忽略空格”的字符串输入

不忽略空格:1.C++写法#include<iostream>#include<cstring>using namespace std;int main(){ string a; getline(cin,a); cout<<a.size(); return 0;}2.C++写法2#include<iostream>#include<cstring>using namespace std;i

2021-12-04 11:14:16 1148

原创 快速排序.交换

#include <iostream>using namespace std;const int N = 1000010; //防止数据溢出int q[N];void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r>>1 ]; //相当于l+r的数据除以2取整 while (i &lt.

2021-12-03 09:09:26 441

原创 Sort排序

#include<algorithm>struct shu{ int num;};bool cmp(shu a, shu b){ return a.num>b.num; //由小到大拍 则 return a.num<b.num;}int a[10];sort(a, a + 10,cmp); 头文件. #include<aglorithm>

2021-12-03 08:57:14 165

原创 Kruskal求最小生成树的权值之和

【问题描述】已知含有n个顶点的带权连通无向图,采用邻接矩阵存储,邻接矩阵以三元组的形式给出,只给出不包括主对角线元素在内的下三角形部分的元素,且不包括不相邻的顶点对。求该连通图的最小生成树中各边的权值之和。注:三元组来表一条带权的边,如2 1 7表示顶点2到顶点1的边的权值为7.【输入形式】第一行给出结点个数n和三元组的个数count,以下每行给出一个三元组,数之间用空格隔开。(注意这里顶点的序号是从1到n,而不是0到n-1,程序里要小心!)【输出形式】最小生成树的权值【样例输入】...

2021-11-14 18:54:33 8192

原创 输出有向图邻接矩阵

【问题描述】设存在有向图G,输入顶点数n,边数为m,输入边信息,输出其对应的邻接矩阵。【输入形式】首先输入顶点个数n(小于10),顶点名称依次为0至n-1;输入边数m;输入顶点之间的边(两个顶点之间用空格隔开)。【输出形式】输出生成的二维矩阵。【样例输入】460 20 31 21 02 33 1【样例输出】0 0 1 11 0 1 00 0 0 10 1 0 0Tips:注意到输入的遍没有按照二位矩阵双循环的方式判断,故选择输入一次边,

2021-11-13 18:16:02 3240

原创 图的遍历及其连通分量个数

问题描述】根据输入的图的邻接矩阵A,判断此图的连通分量的个数。【输入形式】第一行为图的结点个数n,之后的n行为邻接矩阵的内容,每行n个数表示。其中A[i][j]=1表示两个结点邻接,而A[i][j]=0表示两个结点无邻接关系。【输出形式】输出此图连通分量的个数。【样例输入】50 1 1 0 01 0 1 0 01 1 0 0 00 0 0 0 10 0 0 1 0【样例输出】2...

2021-11-11 17:40:22 3805 1

原创 队列的操作

设输入一整数序列:a1,a2,a3,...,an(输入序列以-2结束),编写算法实现如下功能:使用循环队列存储输入的整数(设队列的存储容量固定为6),当ai不等于-1时将ai入队;当ai等于-1时将当前队头元素出队。根据输入序列完成入队出队操作,并将队列中所有的数据输出(先输出队头元素),当队列为空时输出NULL。【输入形式】【输出形式】【样例输入】1 2 3 -1 -1 5 6 -2 //输入序列【样例输出】3 5 6 //整个过程结束后队列中现有元素情况Tips:队列要连起来的话,需要在逻

2021-11-02 19:52:44 320

原创 二叉树求第K位的值

【问题描述】编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值。【输入形式】以井号作为空树,输入一个序列,按照先序方式构建一颗二叉树,输入一个整数k【输出形式】输出先序序列中第k个位置的元素值【样例输入】ABD##E##C##5【样例输出】CK=5,如果要把f传入参数的话,就需要递归传来传去,非常的麻烦,所以咱们创建的时候就好好创建,有其他操作换个函数再说Tips:读取第K位的值,联想到”顺序数组“非常的方便,那不妨将二叉树先序输出,复制为数组 这样一...

2021-11-02 11:29:38 767

原创 二叉树交换子树

【问题描述】编写递归算法,将二叉树中所有节点的左、右子树相互交换。【输入形式】按先序序列输入二叉树各结点的值,结点的值是单字符,空子树输入空格。【输出形式】先输出交换后的二叉树的先序序列,再输出中序序列。【样例输入】例如三个的满二叉树,输入:a,b, , ,c, , (b后有两个空格,表示b有两棵子树;c后有两个空格)【样例输出】上面的满二叉树交换后的输出: acb //先序序列 cab //中序序列【样例说明】【评分标准】对于这种带空格的输入就很狗了,太刁钻了吧,...

2021-11-01 23:51:24 461

原创 复制二叉树。

问题描述】编写复制一颗二叉树树的非递归算法。【输入形式】先序序列创建二叉树,数据类型为字符型,空结点用'*'表示。【输出形式】<中序输出该二叉树,以空格分隔数据><回车><中序输出复制后的二叉树,以空格分隔数据>【样例输入】ABC**D**CE**F**【样例输出】C B D A E C FC B D A E C F【样例说明】【评分标准】tips:这道题很简单 基本没什么考的 传入传出 唯一就是复制操作时 根值传递完成后...

2021-11-01 17:33:06 523 2

原创 删除二叉树中以值x结点为根的子树

问题描述】编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。【输入形式】先序序列构造二叉树,结点数据类型为字符型,空结点用'#'表示。输入要删除的结点值。【输出形式】先序序列输出删除后的二叉树。【样例输入】ABC##D##C#F##C【样例输出】ABD【样例说明】【评分标准】...

2021-11-01 16:10:43 2474 3

原创 c列车编组

【问题描述】用于列车编组的铁路转轨网络是一种栈结构,其中,右边作为输入端,左边作为输出端。当右边轨道上的车皮编号顺序为1,2,3,4时,如果执行操作为进栈、进栈、出栈、进栈、进栈、出栈、出栈、出栈,则在左边轨道上的车皮编号顺序为2,4,3,1。编写一个算法,输入n个整数,表示右边轨道上n节车皮的编号,用上述转轨栈对这些车皮重新编排,使得编号为奇数的车皮都排在编号为偶数的车皮的前面,编号为偶数的车皮序列与输入时的序列正好相反。利用顺序栈和顺序队列的实现。【输入形式】输入n个整数,数值之间空格分隔,以回车结

2021-10-31 20:30:30 1468

原创 判断一个序列是否为合法序列

假设以1 和0 分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由1 和0 组成的序列,这里把可以正常操作的序列称为合法序列,否则称为非法序列。请编写算法,判定所给的操作序列是否合法。若合法,返回1,否则返回0。输入序列的长度不超过30个操作【输入形式】第一个数字为操作序列的总数,后面的为操作序列的具体内容,每两个操作之间以空格键隔开。【输出形式】如果操作序列为合法序列,输出1,如果操作序列为非法序列,输出0;tips:如果出现1.出栈时 栈为空..

2021-10-31 18:45:02 691

原创 利用顺序表计算间隔天数

问题描述】将每月天数存放在顺序表,计算某天到2021-10-10的间隔天数【输入形式】输入三个数,以空格为分隔【输出形式】一个整数【样例输入】1997 2 18【样例输出】9000【样例说明】【评分标准】#include<iostream>using namespace std;typedef struct node{ int *day; int length;}list;int main(){ list A; //设置一个list类型

2021-10-31 16:40:18 596 1

原创 单链表的排序与删除

#include<iostream>#include<cstdlib>#include<cstdio>using namespace std;typedef struct node{ int data; struct node* next;}node;node *Creatlist(){ node *head = new node[10]; head->next = NULL; node* pre = head;; int n; cha.

2021-10-31 15:36:05 488

原创 单链表节点的删除与排序

问题描述】输入一组整数,以单链表的形式存储,删掉里面存放偶数的节点,并按照从小到大的顺序排序,并输出【输入形式】整数序列,以空格为间隔,最多十个整数【输出形式】整数序列,以空格为间隔【样例输入】3 5 8 9 1 2 4【样例输出】1 3 5 9【样例说明】【评分标准】思路:节点的排序与冒泡排序基本相同,可以采用交换data值而不改变节点值 删除时可以不使用函数,在录入节点时就将其pass掉,符合条件的才能作为data录入#include<stdio....

2021-10-31 14:53:55 512

原创 顺序表比较

【问题描述】设A=(a1,...an)和B=(b1,...bn)均为顺序表,A'和B'分别为A和B中除去最大共同前缀后的子表。若A'=B'=空表,则A=B;若A'=空表,而B'≠空表,或者两者均不为空表,且A'的首元小于B'的首元,则A<B;否则A>B。试写一个比较A,B大小的算法。【输入形式】输入A、B两表的整数序列,整数之间用“,”号分开。【输出形式】A>B输出1;A=B输出0;A<B输出-1。【样例输入】5//该行为A表元素个数2,3,4,10,15//..

2021-09-23 19:59:10 250

原创 有序顺序表的插入

【问题描述】设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。【输入形式】输入整数递增有序序列和插入的元素x,整数之间用逗号分开。【输出形式】输出插入后的有序序列,整数之间用逗号分开。【样例输入】6 //注:顺序表元素个数1,5,6,10,14,17 //注:该行是有序顺序表的数据;7 //注:该行是插入值x;【样例输出】1,5,6,7,10,14,17【样例说明】【评分标准】思路:通过条件判断插入的元...

2021-09-23 18:23:50 495

原创 顺序表的逆置

【问题描述】试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,...,an)逆置为(an,...,a1)。【输入形式】连续输入多个正整数,每数之间以一个空格隔开,最后一个数为-1作为结束标志。如 1 2 3 4 5 -1【输出形式】把输入的正整数逆序输出,每数之间以一个空格隔开。如 5 4 3 2 1【样例输入】1 2 3 4 5 -1【样例输出】5 4 3 2 1【样例说明】【评分标准】1.创建函数 2.逆置...

2021-09-22 20:01:28 538

原创 线性表 顺序结构

【问题描述】创建一个数据类型为整形的顺序结构的线性表完成输入,插入以及输出功能【输入形式】先输入元素个数 再输入数据 输入插入的位置 插入元素【输出形式】输出线性表【样例输入】31 2 32 4【样例输出】1 4 2 3【样例说明】插入的位置必须在范围内例如上述例子的范围在1到4超出直接退出【评分标准】投机取巧使用数组完成单一链表的输出数组作为顺序表并不是死板的位序,不能抽象的看作是储存条(插入元素必须移位)数组在输出时可以根据下标的变化,进行输出元素的改...

2021-09-20 21:11:28 345

原创 链表归并.将两个非递减有序链表合并为一个非递减有序链表

设头指针为La和Lb的单链表分别为线性表La和Lb的存储结构,归并La和Lb,以La为基础void MergeList_L(LinkList &La, LinkList &Lb){ //归并有序表La和Lb,生成新的有序表Lc //并且在归并之后删除La和Lb pa = La->next; pb = Lb->next; pre = La;//将pre作为链表合并后的新的头节点 while (pa&&pb)//la和lb任意一条链表归并完毕后跳出

2021-09-17 18:00:32 5309 3

原创 数组主元素(2013考研题)

【问题描述】已知一个整数序列A长度为N其中若存在a且a的个数大于N/2则称为A的主元素例如0 5 5 3 5 7 5 5 则为主元素 5又如0 5 5 3 5 1 5 7则中没有主元素。假设中的个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出的主元素。若存在主元素则输出该元素否则输出【输入形式】一个整数数组【输出形式】主元素【样例输入】0 5 5 3 5 7 5 5【样例输出】5【样例说明】长度为8,共有5个&ldquo;5&rd

2021-09-15 18:25:45 711

原创 (1.数字统计 ) 计算0到n之间出现某个数x的次数(例如11出现1两次)

【问题描述】对于1到n的所有自然数,计算数字x(x是0-9之间的数字)出现的次数总和。例如:n=11,x=1,则输出4。因为1,2,3,4,5,6,7,8,9,10,11这个序列中1这个数字总共出现了4次。【输入形式】一个整数n(n <= 100000)和一个整数x(0<=x<=9)【输出形式】一个整数,表示x在1..n这个序列中出现的次数总和。【样例输入】11 1【样例输出】4#include<iostream>#include<

2021-09-15 13:52:59 651

原创 LeetCode 20.有效的括号 栈STACK

题目给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5...

2021-08-29 10:17:26 99

原创 .两数之和

题目给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4],...

2021-08-19 15:36:47 88

原创 顺序表的插入和删除(王道考研数据结构)

#include<stdio.h>#include<iostream>using namespace std;#define maxsize 10typedef struct { int data[maxsize]; int length;} Sqlist;void listinsert(Sqlist &l,int i,int e) //在第i个位上插入元素e{for(int j=maxsize;j>=i;j--) .

2021-08-17 11:22:23 238

空空如也

空空如也

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

TA关注的人

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