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

数据结构考试测试编程题

作者前言

🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
​🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂


数据结构考试题

  • **作者前言**
  • 左叶子之和
  • 环形链表的约瑟夫问题

左叶子之和

左叶子之和
在这里插入图片描述
思路:我们要遍历一遍二叉树,找到左右子树的左节点之和加起来

int sumOfLeftLeaves(struct TreeNode* root ) 
{if(root == NULL)return 0;if(root->left == NULL && root->right == NULL)return 0;//判断该节点是否有左节点if(root->left!=NULL && root->left->right == NULL && root->left->left==NULL)return root->left->val + sumOfLeftLeaves(root->right);return sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);
}

思路解释图:
在这里插入图片描述
先判断根节点是否为NULL.判断是否没有左右孩子,如果有判断左孩子是否是叶子节点,是的话就存起来这个值,加上右子树的左叶子节点 的值

环形链表的约瑟夫问题

环形链表的约瑟夫问题
在这里插入图片描述
思路:构造一个环形单向循环链表,每走n次,就删除对应的节点,然后直到剩下一个节点

链接:https://www.nowcoder.com/questionTerminal/c3b34059faf546d3a7ee28f2b0154286?toCommentId=18647662
来源:牛客网#include <stdio.h>
#include<stdlib.h>
typedef int SDataType;
typedef struct StackNode {SDataType val;struct StackNode* next;
} StackNode;
typedef struct Stack {StackNode* head;int size;
} Stack;
//创建节点
StackNode* CreateNode(SDataType elemest) {//创建StackNode* new = (StackNode*)malloc(sizeof(StackNode));if (new == NULL) {perror("CreateNode");return NULL;}new->next = NULL;new->val = elemest;return  new;
}
//初始化
void StackInit(Stack* root) {root->head = NULL;root->size = 0;
}
//插入
void StackPush(StackNode** head, SDataType elemest) {//创建StackNode* newnode = CreateNode(elemest);if (*head == NULL) {*head = newnode;newnode->next = *head;} else {StackNode* tail = *head;while (tail->next != *head) {tail = tail->next;}tail->next = newnode;newnode->next = *head;}
}
//删除
void StackPop(StackNode** head, StackNode* node) {if (head == NULL)return;if (*head == node) {StackNode* tail = (*head)->next;while (tail->next != *head) {tail = tail->next;}*head = (*head)->next;tail->next = *head;free(node);return;}StackNode* tail = (*head)->next;while (tail != *head) {if (tail->next == node)break;tail = tail->next;}tail->next = node->next;free(node);}
//释放
void StackDestoy(StackNode* head) {StackNode* tail = head->next;while (tail != head) {StackNode* p = tail->next;free(tail);tail = p;}
}
int main() {//Stack* root = (Stack*)malloc(sizeof(Stack));//初始化StackInit(root);int n = 0;scanf("%d", &n);int i = 1;for (i = 1; i <= n; i++) {//插入StackPush(&(root->head), i);root->size++;}//int m = 0;scanf("%d", &m);int count = 1;StackNode* tail = root->head;while (root->size != 1) {if (count == m) {root->size--;count = 0;//删除StackNode* p = tail->next;StackPop(&(root->head), tail);tail = p;count++;} else {count++;tail = tail->next;}}printf("%d", root->head->val);StackDestoy(root->head);free(root);return 0;
}

http://www.lryc.cn/news/265108.html

相关文章:

  • 力扣每日一题day37[113.路径总和ii]
  • Keras使用sklearn中的交叉验证和网格搜索
  • docker--Prometheus、Grafana、node_exporter的安装配置及Springboot集成Prometheus示例
  • 数据结构和算法笔记2:二分法
  • Mybatis3系列课程8-带参数查询
  • IDEA shorten command line介绍和JAR manifest 导致mybatis找不到接口类处理
  • 泽攸科技SEM台式扫描电子显微镜
  • 华为交换机配置BGP的基本示例
  • 数据分析基础之《numpy(4)—ndarry运算》
  • 分享一个项目——Sambert UI 声音克隆
  • ES6 语法精粹简读
  • uniapp整合echarts(目前性能最优、渲染最快方案)
  • 解决Electron应用中的白屏问题的实用方法
  • 大数据---34.HBase数据结构
  • 【工具使用-有道云笔记】如何在有道云笔记中插入目录
  • 用户管理第2节课-idea 2023.2 后端一删除表,从零开始---【本人】
  • 如何添加jar包到本地Maven项目中
  • 智能优化算法应用:基于学校优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 【MATLAB第85期】基于MATLAB的2023年智能进化算法/元启发式算法合集(持续更新)
  • [Realtek sdk-3.4.14b]RTL8197FH-VG+RTL8812F WiFi使用功率限制功能使用说明
  • Vue中为什么data属性是一个函数而不是一个对象?(看完就会了)
  • Linux中一些知识积累(持续补充)
  • 内网渗透基础
  • 【2023年网络安全优秀创新成果大赛专刊】银行数据安全解决方案(天空卫士)
  • 嵌入式串口输入详细实例
  • springboot(ssm智慧生活商城系统 网上购物系统Java系统
  • Peter算法小课堂—贪心与二分
  • 搭建Vue前端项目的流程
  • 1.使用 Blazor 利用 ASP.NET Core 生成第一个 Web 应用
  • 如何入门 GPT 并快速跟上当前的大语言模型 LLM 进展?