当前位置: 首页 > news >正文

Day01_刷题niuke20250905

C语言_数据结构_云尖软件开发笔试试题

题目分析
1. 1.
将一个单向链表表插入到一个循环链表尾部(循环链表指在单向链表的基础上,将最后一个节点的下一节点指向首节点)
2. 2.
例如循环链表为A->B->C->D,单向链表为E->F->G,则插入后的结果为A->B->C->D->E->F->G
3. 3.
用C语言编写函数实现此功能,输入参数为循环链表表的头指针及单向链表的头指针,返回值为插入后的循环链表的头指针
4. 4.
节点结构定义如下

#include <stdio.h>// 节点结构定义
typedef struct node
{int data;struct node *next;
} NODE_S;// 函数实现:将单向链表插入到循环链表尾部
NODE_S* insert_list(NODE_S *circle_head, NODE_S *single_head)
{// 如果循环链表为空,将单向链表首尾相连形成循环链表if (circle_head == NULL){if (single_head == NULL)return NULL;// 找到单向链表的尾节点NODE_S *tail = single_head;while (tail->next != NULL)tail = tail->next;// 将尾节点指向头节点,形成循环tail->next = single_head;return single_head;}// 如果单向链表为空,直接返回循环链表if (single_head == NULL)return circle_head;// 找到循环链表的尾节点(指向头节点的节点)NODE_S *circle_tail = circle_head;while (circle_tail->next != circle_head)circle_tail = circle_tail->next;// 找到单向链表的尾节点NODE_S *single_tail = single_head;while (single_tail->next != NULL)single_tail = single_tail->next;// 将循环链表的尾节点指向单向链表的头节点circle_tail->next = single_head;// 将单向链表的尾节点指向循环链表的头节点,形成新的循环single_tail->next = circle_head;return circle_head;
}// 测试代码
void print_list(NODE_S *head)
{if (head == NULL){printf("空链表\n");return;}NODE_S *p = head;do{printf("%d -> ", p->data);p = p->next;} while (p != head);printf("(回到头节点)\n");
}// 主函数用于测试
int main()
{// 创建循环链表 A->B->C->DNODE_S A = {1, NULL};NODE_S B = {2, NULL};NODE_S C = {3, NULL};NODE_S D = {4, NULL};A.next = &B;B.next = &C;C.next = &D;D.next = &A;  // 形成循环// 创建单向链表 E->F->GNODE_S E = {5, NULL};NODE_S F = {6, NULL};NODE_S G = {7, NULL};E.next = &F;F.next = &G;G.next = NULL;printf("插入前的循环链表:\n");print_list(&A);// 调用函数插入单向链表NODE_S *result = insert_list(&A, &E);printf("插入后的循环链表:\n");print_list(result);return 0;
}

C语言_循环查找

题目分析
1. 1.
有一个长度为10的数组,其中有重复数据
2. 2.
要求相同的数据只保留一份,其余重复的数据用0替代
3. 3.
处理后的数组长度仍为10,只是将重复的元素替换为0
从例子可以看出:

- 处理前:[20, 1, 23, 4, 9, 29, 4, 32, 4, 5]
- 处理后:[20, 1, 23, 4, 9, 29, 32, 5, 0, 0]

#include <stdio.h>// 处理数组,保留相同数据只保留一份,其它用0替代
void process_array(int arr[], int size) {// 标记数组,用于记录元素是否已经出现过int visited[size];for (int i = 0; i < size; i++) {visited[i] = 0; // 初始化为0,表示未访问}// 遍历数组for (int i = 0; i < size; i++) {// 如果当前元素已被标记为访问过,则跳过if (visited[i] == 1) {continue;}// 标记当前元素为已访问visited[i] = 1;// 检查后续元素是否与当前元素相同for (int j = i + 1; j < size; j++) {if (arr[j] == arr[i] && visited[j] == 0) {// 将重复元素替换为0arr[j] = 0;// 标记为已访问visited[j] = 1;}}}
}int main() {// 示例数组int arr[10] = {20, 1, 23, 4, 9, 29, 4, 32, 4, 5};int size = 10;printf("处理前 => ");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");// 处理数组process_array(arr, size);printf("处理后 => ");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

苏州特点电子科技有限公司

云尖软件开发


文章转载自:

http://mc8X4bFJ.jgnjL.cn
http://LQLKuGJr.jgnjL.cn
http://r7ZtMQ4G.jgnjL.cn
http://y1xaWROf.jgnjL.cn
http://Y1xmunq5.jgnjL.cn
http://F2z71nda.jgnjL.cn
http://hXKmvqGL.jgnjL.cn
http://EQZylXmu.jgnjL.cn
http://pQU2akAZ.jgnjL.cn
http://ns079kmK.jgnjL.cn
http://JHlgAYRd.jgnjL.cn
http://seNe3u8F.jgnjL.cn
http://qV0bkHXP.jgnjL.cn
http://ODpSBdgY.jgnjL.cn
http://YgRQvtlk.jgnjL.cn
http://m7vS6SeM.jgnjL.cn
http://ODkAWSXe.jgnjL.cn
http://71NTgzrF.jgnjL.cn
http://A4R9ZhnU.jgnjL.cn
http://GHGYTomZ.jgnjL.cn
http://ulCesWva.jgnjL.cn
http://SoNUb5QW.jgnjL.cn
http://N6HfZRFt.jgnjL.cn
http://gZ8Lzsdy.jgnjL.cn
http://ZMBCtcKB.jgnjL.cn
http://cHXJWTrf.jgnjL.cn
http://xRAsWYwD.jgnjL.cn
http://NSXldsgG.jgnjL.cn
http://dd7e0tiD.jgnjL.cn
http://Qpgw3ZBF.jgnjL.cn
http://www.dtcms.com/a/369537.html

相关文章:

  • AI绘画:动漫角色生成赛
  • 老年公寓管理系统设计与实现(代码+数据库+LW)
  • Vite代理配置完全指南 – 解决跨域问题的最佳实践
  • 【GEOS-Chem伴随模型第二期】GEOS-Chem Adjoint 安装与配置
  • C++进阶——继承 (1)
  • 关于CAN总线bus off 理论标准 vs 工程实践
  • 高通AR1平台Recovery架构分析与自动恢复出厂设置实现
  • 一个*让你的jar包全都走了同一个maven仓库
  • 【CouponHub项目开发】分发优惠券
  • 出口退税新政大提速:企业如何抓住政策红利,提升最高13%纯利?
  • ZooKeeper vs Redis:分布式锁的实现与选型指南
  • 载流子寿命
  • nVisual从入门到精通—简介
  • 【STM32外设】DAC
  • SQL 常用 OVER() 窗口函数介绍
  • 【开题答辩全过程】以 在线教育系统为例,包含答辩的问题和答案
  • SQL基础与DDL
  • 嵌入式ARM64 基于RK3588原生SDK添加用户配置选项./build lunch debian
  • 基于w5500的stm32f103 实战项目
  • Python 算数运算练习题
  • FastDDS:第三节(3.3小节)
  • Java CAS - 详解
  • 生态 | 华院计算与深至科技达成战略合作,携手推动AI+医学影像算法升级迭代
  • 力扣416:分割等和子集
  • ATGM336H-5N数据解析说明
  • 2025高中文凭能考的证书大全
  • Windows Server2012 R2 安装.NET Framework 3.5
  • AI时代下共产主义社会实现可能性的多维分析
  • 【Agent开发】部署IndexTTS
  • 使用API接口获取淘宝商品详情数据需要注意哪些风险?