qlu数据结构测试

news/2024/12/16 9:07:16/

12.15测试

编程题 

1、【问题描述】
已知非空线性链表第1个链结点指针为list,链结点构造为
struct node{
    datatype data;
    node *link;
};
请写一算法,将该链表中数据域值最大的那个点移到链表的最后面。(假设链表中数据域值最大的链结点惟一)(注意:要求先写出算法的解题思路,然后再写出算法
【输入形式】
输入为一个整数序列,整数之间以空格隔开,序列以回车结尾。
【输出形式】
输出为移动后的整数序列,整数之间以空格隔开,序列以回车结尾。
【样例输入】
3 12 4 9 5 1
【样例输出】
3 4 9 5 1 12
【样例说明】
将序列中最大的数字12移动到序列最后。
【评分标准】
本题必须采用链表来实现移动操作,其他方法不得分。

#include <stdio.h>
#include <stdlib.h>// 定义链表节点结构体
typedef struct node {int data;struct node *link;
} Node;// 函数用于将链表中数据域最大的节点移到链表末尾
void moveMaxToEnd(Node **list) {if (*list == NULL) {return;}Node *maxPtr = *list;Node *prevMaxPtr = NULL;Node *curPtr = *list;Node *prevPtr = NULL;// 遍历链表找到最大值节点以及其前一个节点while (curPtr!= NULL) {if (curPtr->data > maxPtr->data) {maxPtr = curPtr;prevMaxPtr = prevPtr;}prevPtr = curPtr;curPtr = curPtr->link;}// 如果最大值节点就是头节点if (prevMaxPtr == NULL) {*list = (*list)->link;} else {prevMaxPtr->link = maxPtr->link;}// 找到链表尾节点curPtr = *list;while (curPtr->link!= NULL) {curPtr = curPtr->link;}curPtr->link = maxPtr;maxPtr->link = NULL;
}// 函数用于输出链表中的数据
void printList(Node *list) {Node *cur = list;while (cur!= NULL) {printf("%d ", cur->data);cur = cur->link;}printf("\n");
}int main() {Node *list = NULL;Node *tail = NULL;int num;while (scanf("%d", &num)!= EOF) {Node *newNode = (Node *)malloc(sizeof(Node));newNode->data = num;newNode->link = NULL;if (list == NULL) {list = newNode;tail = newNode;} else {tail->link = newNode;tail = newNode;}}// 清空输入缓冲区while (getchar()!= '\n' && getchar()!= EOF);moveMaxToEnd(&list);printList(list);// 释放链表内存Node *temp;while (list!= NULL) {temp = list;list = list->link;free(temp);}return 0;
}

2、

【问题描述】对于1n的所有自然数,计算0到n所有数字(0-9之间的数字)出现的次数分布。

【输入形式】一个整数n(n <= 100000)

【输出形式】10个数字,空格隔开,对应0-9数字在1..n这个序列中出现的次数总和。

【样例输入】

11

【样例输出】

1 4 1 1 1 1 1 1 1 1

【样例输入】

10000

【样例输出】

2893 4001 4000 4000 4000 4000 4000 4000 4000 4000

【评分标准】输出的10个数之间用空格区分。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>char* intToString(int num) {int len = 0;int temp = num;while (temp > 0) {len++;temp /= 10;}char* result = (char*)malloc((len + 1) * sizeof(char));if (result == NULL) {return NULL;}result[len] = '\0';  // 设置字符串结束符while (num > 0) {result[--len] = num % 10 + '0';num /= 10;}return result;
}int main() {int n;scanf("%d", &n);int count[10] = {0};  // 用于记录0-9每个数字出现的次数,初始化为0for (int i = 1; i <= n; i++) {char* numStr;if (i < 0) {numStr = (char*)malloc(2 * sizeof(char));  // 为负号和数字字符串预留空间if (numStr == NULL) {return 1;}numStr[0] = '-';i = -i;char* tempStr = intToString(i);if (tempStr == NULL) {free(numStr);return 1;}strcpy(numStr + 1, tempStr);  // 将转换后的数字字符串复制到负号后面free(tempStr);} else {numStr = intToString(i);if (numStr == NULL) {return 1;}}// 遍历字符串for (size_t j = 0; j < strlen(numStr); j++) {int digit = numStr[j] - '0';  // 将字符转换回数字count[digit]++;}free(numStr);  // 释放}for (int i = 0; i < 9; i++) {printf("%d ", count[i]);}printf("%d\n", count[9]);return 0;
}

 


http://www.ppmy.cn/news/1555548.html

相关文章

python爬虫--小白篇【爬虫实践】

一、前言 1.1、王者荣耀皮肤爬虫 根据王者荣耀链接&#xff0c;将王者荣耀的全部英雄的全部皮肤图片爬取保存到本地。经过分析得到任务的三个步骤&#xff1a; 根据首页全部英雄列表连接获取全部英雄的名称hero_name以及对应的hero_id&#xff1b;根据单个英雄的hero_name和h…

右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统

一、项目名称 山西右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统 二、项目背景&#xff1a; 山西右玉光伏发电项目位于右玉县境内&#xff0c;总装机容量为200MW&#xff0c;即太阳能电池阵列共由200个1MW多晶硅电池阵列子方阵组成&#xff0c;每个子方阵包含太阳能…

Vue Web开发(七)

1. echarts介绍 echarts官方文档 首先我们先完成每个页面的路由&#xff0c;之前已经有home页面和user页面&#xff0c;缺少mail页面和其它选项下的page1和page2页面。在view文件夹下新建mail文件夹&#xff0c;新建index.vue&#xff0c;填充user页面的内容即可。在view下新建…

数据采集:各地区动态IP数据质量差异分析

“在当今信息化社会&#xff0c;数据采集已成为各行各业不可或缺的一部分&#xff0c;它为企业决策、市场分析、学术研究等提供了重要的数据支持。而在数据采集过程中&#xff0c;动态IP作为一种频繁更换IP地址的代理服务&#xff0c;因其能够模拟不同地理位置的用户访问、突破…

【C++游记】Vector的使用和模拟实现

枫の个人主页 你不能改变过去&#xff0c;但你可以改变未来 算法/C/数据结构/C Hello&#xff0c;这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕&#xff0c;我们继续来学习C的内容呀。C是接近底层有比较经典的语言&#xff0c;因此学习起来注定枯燥无味&#xf…

【C++】sophus : test_macros.hpp 用于单元测试的宏和辅助函数 (四)

这段代码定义了一组用于单元测试的宏和辅助函数&#xff0c;主要目的是方便地进行各种类型的断言&#xff0c;并提供清晰的错误信息输出。 1. details::pretty(T) 函数: 这是一个模板函数&#xff0c;用于将各种类型的值转换为易于阅读的字符串表示形式。它使用模板特化来处理不…

【故障处理--修改CI流水线】

背景&#xff1a;研发同事反映CI流水线卡顿严重&#xff0c;判断是移动云镜像仓库的带宽太小&#xff0c;故在公有云搭建一个harbor仓库&#xff0c;这就意味着CI流水线有些配置需要改动 1、CI流水线的介绍 helm-chart/pcas-appstore-hy存放的是chart包需要的文件 Dockerfile…

框架模块说明 #07 API加密

背景 在实际开发过程中&#xff0c;我们通常会涉及到数据加密的问题。本文重点探讨两个方面&#xff1a;一是外部接口调用时的数据加密&#xff0c;二是服务间调用的数据加密与解密。 对于外部接口调用&#xff0c;每个用户将拥有独立的动态 AES 加密密钥&#xff08;KEY&…