- 博客(20)
- 收藏
- 关注
原创 南理工ds期末以及824真题算法汇总
南理工ds期末以及824真题算法汇总单链表设有线性表L={a1, a2, …, an},顺序存储,试写一个算法将线性表的元素按照原始顺序构造一个有头结点的单链表基本思想: 遍历线性表L,采用尾插法建立单链表(如果逆序,则用头插法)typedef struct{ ElemType *elem; int length; int listSize;}Sqlist;typed...
2019-12-11 22:03:55 1146
原创 ccf 201803-2 碰撞的小球
#include <bits/stdc++.h>using namespace std;const int N = 100;int main() { int n, _n, L, t, i = 0; // 数组a记录为小球当前位置, 数组b记录为小球运动方向 int a[N], b[N]; // 初始的运动方向为向右,用1表示;向左,用-1表示 for (in...
2019-08-04 21:55:47 191
原创 ccf 201803-1 跳一跳
#include <bits/stdc++.h>using namespace std;int main() { int center, score = 0, s; bool flag = false; while (cin >> center && center != 0) { if (center == 1) { // 没有跳到...
2019-07-27 07:06:18 147
原创 王道上几道堆栈和队列的的小题
假设I、O分别表示入栈、出栈操作,栈的初态和终态均为空,入栈和出栈的操作序列表示为仅由I和O组成的序列,可以操作的序列称为合法序列,否则称为非法序列,设计一算法,判断所给的操作序列是否合法int Judge(char A[]){ // 逐一扫描入栈出栈序列,每扫描至一个元素,检查出栈次数是否小于入栈次数,若大于则为非法序列 // 结束后,再判断出入栈的顺序是否相等,相等则合法...
2019-07-22 07:05:28 529 1
原创 王道上几道链表的小题(下)
假设有两个按元素值递增次序排列的线性表,均以单链表形式存储,编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,要求利用原来两个单链表的结点存放归并后的单链表void MergeList(Listlist &La, Listlist &Lb){ // pa指向链表A的第一个结点,pb指向A的第一个结点,链表A指控,作为结果链表 // 同步遍历链表A和B...
2019-07-18 05:43:24 912
原创 王道上几道链表的小题(上)
设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点void del_x(Linklist &L, ElemType x){ LNode *p; if(L == NULL){ return; } if(L->data == x){ p = L; L = L->next; ...
2019-07-12 21:52:11 283
原创 王道上几道顺序表的小题 (下)
已知在一维数组A[m+n]中一次存放着两个线性表(a1,a2,a3,...am) 和 (b1,b2,b3,...bn)。试编写一个函数,将数组中两个顺序表的位置互换,即将(b1,b2,b3,...,bn) 放在 (a1,a2,a3,...,am)的前面void Reverse(DataType A[], int left, int right, int arraySize){ // ...
2019-07-10 13:24:14 320
原创 王道上几道顺序表的小题(上)
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行。bool delMinValue(Sqlist &L, ElemType &data){ if(L.length == 0){ return false; } value = data[0]; i...
2019-07-08 06:56:11 171
原创 考试座位号
#include <bits/stdc++.h>using namespace std;const int max = 1010;struct Student { long long id;// 准考证号 int examSeat;// 考试座位号}testSeat[max]; // 试机号int main() { int N, M; cin >...
2019-07-04 01:14:10 250
原创 原有次序保存到next域,pre域把所有结点按照值从小到大的顺序连接
先给出数据结构如下#define M 1000 // 链表最大长度typedef struct{ ElemType data; int pre; int next;} component, SLinkList[M];设计一个算法,将s1中,所有结点的原有次序保持在各个结点的next域中,利用pre域把所有结点按照其值从小到大的顺序连接起来假设s1为SLi...
2019-07-03 23:12:39 924 2
原创 求(A-B)∪(B-A)
设有两个集合A和B,分别用有头节点的单链表la和lb表示。计算(A-B)∪(B-A),结果放在la中思路分析这是一道考研真题,首先画一下维恩图,看看目标集合到底是什么目标集合是A集合和B集合交集的补集做一个O(n^2)的遍历,遍历集合A,在遍历过程中,删除与集合B中重复的元素,内部再进行一次遍历,删除集合B中与A重复的元素,最后把集合B挂载道集合A中void di...
2019-07-03 22:23:11 1815
原创 ccf 201903-4 消息传递接口
借鉴大神的代码↓https://www.cnblogs.com/xidian-mao/p/10568594.html借鉴大神的代码↑思路分析每组作业都有n个进程发出不同的指令,大体上来看,需要消去成对出现的接收和发送指令(每个进程最多有8个指令),因此需要将每组进程消息整理为发送和接收序列,记录消去的对数,若恰好全部消去,则不会死锁,否则会发生死锁怎么整...
2019-07-01 23:07:38 699
原创 一元多项式求导
#include <iostream>#include <stdio.h>using namespace std;int main() { int a[1010] = { 0 };// 0次项目求导后为0 int k, e, count = 0; while (scanf("%d%d", &k, &e) != ...
2019-06-30 23:44:09 136
原创 A+B and C
翻译一下题目描述给出三个整数,A,B 和 C,范围-2^63 ~ 2^63,你应该给出判断,A+B>C 否?输入格式输入的第一行给出了测试实例的个数,T(小于等于10)下面紧跟10个测试实例,每个单独一行,由三个整数由空格隔开的整数A,B和C组成输出格式对于每个测试实例,每行的输出格式,如果 A+B>C,"Case #X: true",否则"Case ...
2019-06-30 18:52:40 335
原创 最短距离
先翻译一下题目描述任务非常简单,给出存在于一条公路上的组成一个圆的 N个点,你应该能给出任意一组端点上的最短距离输入格式每个输入文件都包含一个测试实例。对每个例子来说,第一行包含一个整数N,(大小在3~10^5),紧接着N个整数表示距离D1,D2...DN,Di表示第i和第i+1条边的距离,DN表示第N条边与第一条边的距离。在这行上的所有数据都由一个空格隔开。第二行给...
2019-06-30 01:06:40 148
原创 洗牌机器
#include <iostream>using namespace std;const int N = 54;char mp[5] = {'S', 'H', 'C', 'D', 'J'};int start[N+1], end[N+1], next[N+1];int main(){ int i = 1, K; cin >> K; wh...
2019-06-28 18:42:14 133
原创 ccf 201903-3 损坏的RAID5
#include <iostream>using namespace std;const int N = 1e3;const string base = "0123456789ABCDEF";string disks[N];int n, s, l;// 16进制字符转10进制数字 int to_int(char ch){ if(ch >= '0'...
2019-06-28 17:14:45 1202
原创 锤子剪刀布
这道题刚开始尝试用字符串来做,后来发现答案中直接转为字典顺序,并通过模除移位获取对战结果,过程如下#include <iostream>using namespace std;// 手势转为数字int change(char c){ if(c == 'B'){ return 0; }else if(c == 'C'){ return 1; }e...
2019-06-27 00:42:08 217
原创 ccf 201903-1 小中大
#include <iostream>#include <iomanip>using namespace std;int main (){ int n; cin >> n; int num; cin >> num; int max = num, min = num, i = 1, mid_1 = num, mid_...
2019-06-25 17:56:48 170
原创 ccf 201903-2 二十四点
#include <iostream>#include <stack> using namespace std;int calculate(int num1, int num2, char op){ switch(op){ case '+': return num1+num2; case '-': return num1-num...
2019-06-25 17:54:31 427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人