问题 A: 一排里的位置交换

题目描述

体育课上,老师把一排里的两个身高不同的同学的位置交换了一下以方便安排分组训练。你能编程模拟这个过程吗?

输入

第一行是自然数n(n小于100),表示有n个数,第二行是n个表示身高的数据,第三行是要交换的两个同学的序号(按左起从1开始依次排序)。

输出

交换位置后的一排身高值。中间用空格间隔。

样例输入

5
152 155 120 145 160
2 5

样例输出

152 160 120 145 155
#include<bits/stdc++.h>
using namespace std;
const int maxn=201;typedef struct{int date[maxn];int length;
}List;
List *li;
void cs(List* &li)
{li=(List*)malloc(sizeof(List));li->length=0;
}
void creat(List* &li,int a[],int m,int n,int l)
{int i=0,k=1;li=(List*)malloc(sizeof(List));for(int i=1;i<=n;i++){if(i==m) li->date[k]=a[l];else if(i==l) li->date[k]=a[m];else li->date[k]=a[i];k++;}li->length=k;
}
void sc(List* &li)
{for(int i=1;i<li->length;i++){cout<<li->date[i];if(i!=li->length-1) cout<<" ";}
}
int main()
{int n;cin>>n;int a[205];for(int i=1;i<=n;i++){cin>>a[i];}List *li;int m,l;cin>>m>>l;creat(li,a,m,n,l);sc(li);
}

问题 G: 离队

题目描述

体育课上,班上的同学排成了一排,结果有个同学突然感觉不适,需要去医院,就离队了,你能编程模拟离队后的状态吗?

输入

第一行是整数n(n<100),第二行有n个整数,第三行是k,表示从左开始第k个离队。

输出

输出离队后的数字序列。

样例输入

5
120 125 135 126 145
3

样例输出

120 125 126 145
#include<bits/stdc++.h>
using namespace std;
const int maxn=201;typedef struct{int date[maxn];int length;
}List;
List *li;
void cs(List* &li)
{li=(List*)malloc(sizeof(List));li->length=0;
}
void creat(List* &li,int a[],int m,int n)
{int i=0,k=1;li=(List*)malloc(sizeof(List));for(int i=1;i<=n;i++){if(i!=m) {li->date[k]=a[i];k++;}}li->length=k;
}
void sc(List* &li)
{for(int i=1;i<li->length;i++){cout<<li->date[i];if(i!=li->length-1) cout<<" ";}
}
int main()
{int n;cin>>n;int a[205];for(int i=1;i<=n;i++){cin>>a[i];}List *li;int m;cin>>m;creat(li,a,m,n);sc(li);
}

问题 H: 入队

题目描述

体育课上,上课铃响后,大家排成了一排,结果有一个同学迟到了,老师让他插在这一排的某个位置,你能编程模拟这个过程吗?

输入

第一行是整数n(n<100),第二行n个整数,第三行是整数m和要插入的位置k(位置从左往右依次从1排序)。

输出

入队后的n+1个数据序列。

样例输入

5
123 125 128 121 145
136 2

样例输出

123 136 125 128 121 145

提交

#include<bits/stdc++.h>
using namespace std;
const int maxn=201;typedef struct{int date[maxn];int length;
}List;
List *li;
void cs(List* &li)
{li=(List*)malloc(sizeof(List));li->length=0;
}
void creat(List* &li,int a[],int m,int n,int l)
{int i=0,k=1;li=(List*)malloc(sizeof(List));for(int i=1;i<=n;i++){if(i<l)li->date[k]=a[i];else if(i==l) {li->date[k]=m;}else li->date[k]=a[i-1];k++;}li->length=k;
}
void sc(List* &li)
{for(int i=1;i<li->length;i++){cout<<li->date[i];if(i!=li->length-1) cout<<" ";}
}
int main()
{int n;cin>>n;int a[205];for(int i=1;i<=n;i++){cin>>a[i];}List *li;int m,l;cin>>m>>l;n=n+1;creat(li,a,m,n,l);sc(li);
}

问题 B: 围成圈

题目描述

假如有一次班里组织户外活动,同学们随机围坐成一圈做游戏,每个同学都记住了左右同学的编号,活动结束后,老师想让你帮忙复原当时大家坐的位置,你能通过每个同学记录的左右同学的编号,把当时大家坐的一圈情况复原吗?

输入

第一行是人数n(n<100)。从第二行开始n行,分别表示1-n编号的同学左右两个同学的编号。最后一行某个同学的编号K。

输出

围坐的这个圈里,从第K个同学开始顺时针的序列。

样例输入

5
4 5
5 3
2 4
3 1
1 2
3

样例输出

3 2 5 1 4
#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;int a[n],b[n];for(int i=1;i<=n;i++){cin>>a[i]>>b[i];}int k;cin>>k;for(int i=1;i<=n;i++){cout<<k;if(i!=n) cout<<" ";k=a[k];}
}

问题 C: 十进制整数转二进制

题目描述

二进制是计算机运算的基础,给你一个十进制整数,你能编程实现转二进制吗?

输入

第一行n,表示接着下边有n个十进制整数,每个占一行。

输出

对应每个十进制整数输出相应二进制数占一行。

样例输入

2
5
16

样例输出

101
10000
#include<bits/stdc++.h>
using namespace std;
void er(int n)
{if(n/2>0){er(n/2);}printf("%d",n%2);
}
int main()
{int m;cin>>m;int a[m];for(int i=0;i<m;i++){cin>>a[i];er(a[i]);if(i!=m-1)cout<<endl;}
}

问题 D: 进出栈

题目描述

设栈S的初始状态为空,元素a, b, c, d, e, f, g 依次入栈,给你一个出栈序列,请编程判断出栈序列是否正确。

输入

占一行,为出栈序列。

输出

如果出栈学列是可能的,输出True,否则输出False。

样例输入

a b c d e f g

样例输出

True
#include<bits/stdc++.h>
using namespace std;
char dc[]="abcdefg";
int main()
{char a[7];stack<char>b;for(int i=0;i<7;i++){cin>>a[i];}int k=0;for(int i=0;i<7;i++){b.push(dc[i]);while(b.top()==a[k]){b.pop();k++;if(b.size()==0) break;}}if(b.empty()) cout<<"True";else cout<<"False";
}

问题 E: 栈容量

题目描述

设栈S的初始状态为空,元素a,b,c,d,e,f,g依次入栈,出栈顺序为b,d,c,f,e,a,g那么栈容量至少应该是3。如果任意给你一个出栈序列,你能编程判断相应的栈容量至少是多少吗?

输入

元素a,b,c,d,e,f,g依次入栈情况下的一种出栈序列。

输出

对应出栈序列的栈容量至少是多少。

样例输入

b d c f e a g

样例输出

3
#include<bits/stdc++.h>
using namespace std;
char dc[]="abcdefg";
int main()
{char a[7];stack<char>b;for(int i=0;i<7;i++){cin>>a[i];}int k=0,sum=0,max=0;for(int i=0;i<7;i++){b.push(dc[i]);sum++;if(sum>max){max=sum;}while(b.top()==a[k]){b.pop();sum--;k++;if(b.size()==0) break;}}cout<<max;}

问题 F: 自创语言

题目描述

学了一段英语课之后,小名同学发现英语单词就是26个字母中若干个组合在一起的,于是他想自己也创立一种语言,为了简化单词,他计划只选26个小写字母的前n个符号构造长度也为n个符号的单词,构造好单词后,先要编写个词典,给每个单词有个解释以便人们学习他自创的语言。你能编程帮助按字典序输出所有长度为n的单词吗?

输入

占一行,为整数n(n<26)。

输出

所有由前n个符号构造长度也为n个符号的单词,按字典序每行输出一个单词。

样例输入

2

样例输出

aa
ab
ba
bb

【d了一下。按序搜完再倒回来就。老是记不清喜欢写成0orz。】

#include<bits/stdc++.h>
using namespace std;
const int maxn=201;
char dc[27]={'0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char dc1[27];
int n;
void dfs(int m)
{if(m==n+1){for(int i=1;i<=n;i++){cout<<dc1[i];}cout<<endl;}else{for(int i=1;i<=n;i++){dc1[m++]=dc[i];dfs(m);m--;}}
}
int main()
{cin>>n;dfs(1);
}

矿 第一次数据结构实验相关推荐

  1. 桂电七院数据结构实验报告一

    顺序表的基本操作 实验内容与步骤 实现顺序表上的插入.删除等操作.调试程序并对相应的输出作出分析:修改输入数据,预期输出并验证输出的结果.加深对有关算法的理解. 步骤: 第一步:定义顺序表的存储结构. ...

  2. 数据结构实验之二叉树五:层序遍历 // oj3344 队列+二叉树 // 先序 --层次

    原题链接:oj3344 数据结构实验之二叉树五:层序遍历 Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. In ...

  3. 数据结构实验---最短路径C实现附带及简单界面

    数据结构实验-最短路径C实现附带及简单界面 前言: 最短路径算法是图论中比较重要的算法之一,我们在课本中学到的最短路径算法有两种,分别为Dijkstra 算法 和 Floyd 算法,本文中采用的是 D ...

  4. 数据结构实验报告—栈和队列

    作者:命运之光 专栏:数据结构 目录 实验内容 实验三 栈和队列 一.需求分析 二.概要设计 三.详细设计 四.调试分析 五.测试结果 附录:源程序代码(带注释) 实验内容 实验三栈和队列 实验环境: ...

  5. 数据结构实验:内部排序算法的性能分析

    文章目录 前言 一.问题描述 二.问题分析 三.实验结果及分析 (1)实验数据描述 (2)实验结果 (3)性能分析 四.源代码 前言 记录下本学期的数据结构实验 本实验主要集中于比较几种内部排序算法 ...

  6. 数据结构实验入门:学生成绩统计排序系统

    笔者最近在学校开始学习数据结构,这门课程作为计算机专业的最核心课程需要重点掌握,下面是数据结构实验课上的第一次作业内容,笔者在这里分享一下自己的想法和见解 一.实验内容 设计程序实现统计一个班的学生成 ...

  7. 数据结构实验之链表五:单链表的拆分-sdut

    数据结构实验之链表五:单链表的拆分 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 输入N个 ...

  8. SDUT OJ 数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  9. SDUT-2449_数据结构实验之栈与队列十:走迷宫

    数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...

最新文章

  1. php基于laravel框架的批量插入操作
  2. 打造自己的数据访问层(二)
  3. html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
  4. jq之$(“p:first“)
  5. ansible介绍+基本操作
  6. Hadoop 的核心(1)—— HDFS
  7. RMAN duplicate恢复数据库报错RMAN-06054问题处理
  8. c#制作发行版 vs_vs2019制作多项目工程模板 - Jackie Hao
  9. 亚马逊云科技成为Meta关键长期战略云服务提供商;触宝科技延伸业务布局聚焦元宇宙 | 全球TMT...
  10. 计算机网络测速创新,一种计算机网络安全测速装置的制作方法
  11. Flutter学习(三)
  12. linux系统清理命令行,告诉你Ubuntu系统较全面清理的方法及命令
  13. [机器学习导论]——第三课——神经网络Ⅱ
  14. 视频文件(任意文件)二进制读写
  15. 数组数据结构的使用与代码编写(一)
  16. 哪里​可以​找到​SPICE​仿真​模型(转)
  17. 火狐浏览器Firefox上DownThemAll插件
  18. 电子电路期末考试复习预测题一(内附详细解析)
  19. 宛如一个未来穿越者,终年33岁的印度数学天才,大数学家哈代说“他发现并创造了数学”
  20. 【关于Citespace和JRE(JAVA运行环境)的详细安装教程】

热门文章

  1. python像数常用函数_引用 象数疗法原理
  2. Android Canvas rotate 和translate 两个方法的研究
  3. 2021年全球手机市场最大赢家除了苹果,还有OPPO系
  4. 浅谈安卓逆向协议(四)- ida pro - 小红书
  5. 申请基于GPT-4.0模型的NewBing秒审核
  6. int 和 Integer 有什么区别
  7. 培训班H5宣传单怎么做?快进来拿方案~
  8. 微信小程序自动注册获取token
  9. Archlinux安装yaourt
  10. 群发邮件平台你知道那个好吗,一款邮件群发100万封群发邮件平台