
算法
qfl_sdu
承接各类C/C++项目
展开
-
链表的创建、逆序、合并、遍历
功能:将两个非递减次序排列的单链表归并为一个非递增次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放归并后的单链表。效果图:代码:#include <iostream>using namespace std;struct StNode { int data; struct StNode* next;};//创建节点StNode* CreateNode(int d){ StNode* node = new StNode; node-.原创 2021-09-27 18:32:55 · 701 阅读 · 1 评论 -
M个人进N个检票口,最短时间问题
问题来源:优快云问答问题描述:描述A学校共派出M名选手参加NOIP,现在他们正赶往火车站参加比赛。火车站共有N个检票口。由于检票员的操作速度不同,每个检票口的通行速度也就不同。平均测量,第k个检票口的速度为Tk秒。在候车时,选手们就开始思考,假设一开始所有检票口都处于准备状态,每个检票口一次只能通过一人。那么M名选手至少需要多少时间全部通过检票口。输入第1行:用空格隔开的两个整数N、M,1≤N≤103、1≤M≤109),分别表示检票口数量以及人数。接下来的N行,每行一个整数,表示每个原创 2021-07-15 16:01:03 · 712 阅读 · 0 评论 -
使用队列求集合的交集、并集、差集
代码:#include <stdio.h>#include <stdlib.h>struct DataSetQueue { double val; DataSetQueue* next;};//显示队列void show(struct DataSetQueue* head){ struct DataSetQueue* p = head; while(p) { printf("%g ",p->val); p = p->next;原创 2021-07-07 14:44:05 · 455 阅读 · 1 评论 -
左三角螺旋矩阵
数据:代码#include <stdio.h>#include <stdlib.h>void fun(int **a, int sx,int sy,int n,int start){ int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) { if(i==j) a[sx+i][sy+j] = start + i; else if(i==n-1) a[sx+i][s原创 2021-07-06 19:01:06 · 104 阅读 · 0 评论 -
M个孩子分N件物品
描述题目来源:优快云问答30个孩子,有15个冰淇淋,15个草莓,30个孩子围成一圈,从1开始报数,数到9的孩子分到一个冰淇淋,下一个孩子从1开始数,直到15个冰淇淋全部分完。跟猴子选大王一个道理,差别是猴子最后只剩下一个,道理是相同的。代码#include <stdio.h>//判断数组中元素等于1的个数是否等于mint isHalf(int a[],int n,int m){ int i,nmb = 0; for (i = 0;i<n;i++) { if(a原创 2021-06-17 01:48:21 · 323 阅读 · 0 评论 -
word字符统计,并升序排列C++版
说明本文创作的原因来源于优快云问答模块网友的问题,再次备份记录一下。功能要求从txt文件中读取文件内容,并将单词升序排列,单词存放在链表中。单词的操作放在类中,链表的操作通过类的成员函数实现。显示所有字符及数量。代码#include <iostream>#include <string>using namespace std;struct WordNode{ string word; int nmb; WordNode* next; WordNode(){原创 2021-06-08 00:28:00 · 420 阅读 · 0 评论 -
字符串中查找长度最大的递增字符子串
功能描述比如字符串“1239871234509876123456789"中,递增字串为:1239871234509877123456789最长的就是123456789代码#include <stdio.h>#include <string.h>#define MAX_SIZE 100000int main(){ char buf[MAX_SIZE] = {0}; int i = 0,len = 0,index = 0; char maxbuf原创 2021-06-07 13:57:36 · 468 阅读 · 0 评论