数据结构day5

一、思维导图

二、课后练习


1、使用循环链表完成约瑟夫环问题

2、使用栈,完成进制转换(输入:一个整数,进制数,输出:该数的对应的进制数)

//头文件

#ifndef DEC_TO_BIN_H
#define DEC_TO_BIN_H#include <myhead.h>typedef int datatype;
#define MAX 100typedef struct
{datatype *data;int top;
}Stack,*StackPtr;//创建栈
StackPtr stack_create();//判空
int stack_empty(StackPtr S);//判满
int stack_full(StackPtr S);//入栈
void stack_push(StackPtr S,datatype element);//出栈
void stack_pop(StackPtr S);//遍历栈
void stack_show(StackPtr S);//将整数转换成对应的进制数
void Dec_to_Bin(StackPtr S, int element,int num);#endif

//功能函数

#include "Dec_to_Bin.h"//创建栈
StackPtr stack_create()
{//在堆区申请一个栈大小的空间StackPtr S = (StackPtr)malloc(sizeof(Stack));if(NULL == S){printf("创建失败\n");return NULL;}//栈申请成功,申请存储栈的空间//申请MAX个datatype类型数据大小的空间S->data = (datatype *)malloc(sizeof(datatype) * MAX);if(NULL == S->data){printf("申请栈存储空间失败\n");return NULL;}//给空间内容初始化memset(S->data,0,sizeof(datatype)*MAX);//栈顶元素变量初始化S->top = -1;//返回栈地址return S;
}//判空
int stack_empty(StackPtr S)
{return S->top == -1;
}
//判满
int stack_full(StackPtr S)
{return S->top == MAX-1;}
//入栈
void stack_push(StackPtr S,datatype element)
{//判断逻辑if(NULL == S || stack_full(S)){printf("入栈失败\n");return;}//入栈//先偏移栈顶位置S->top++;//再将数据压入栈中S->data[S->top] = element;
}
//出栈
void stack_pop(StackPtr S)
{//判断逻辑if(NULL == S || stack_empty(S)){printf("出栈失败\n");return;}//出栈//先弹后减printf("%d出栈成功\n",S->data[S->top]);S->top--;
}//遍历栈
void stack_show(StackPtr S)
{//判断逻辑if(NULL == S ||stack_empty(S)){printf("遍历失败\n");return;}for(int i=S->top;i>=0;i--){printf("%d",S->data[i]);}printf("\n");
}//将整数转换成对应的进制数
void Dec_to_Bin(StackPtr S, int element,int num)
{//对element循环取余并压入栈中while(element){stack_push(S,element%num);//将element除以numelement /= num;}
}

//主函数

#include "Dec_to_Bin.h"
int main(int argc, const char *argv[])
{while(1){//创建栈StackPtr S = stack_create();//提示输入int element,num;printf("请输入一个整数和你需要转换的进制数:");scanf("%d%d",&element,&num);//将整数转换成进制数存入栈中Dec_to_Bin(S,element,num);//将栈输出printf("该整数的%d进制数为:",num);stack_show(S);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WAF剖析】10种XSS某狗waf绕过姿势,以及思路分析

原文&#xff1a;【WAF 剖析】10 种 XSS 绕过姿势&#xff0c;以及思路分析 xss基础教程参考&#xff1a;https://mp.weixin.qq.com/s/RJcOZuscU07BEPgK89LSrQ sql注入waf绕过文章参考&#xff1a; https://mp.weixin.qq.com/s/Dhtc-8I2lBp95cqSwr0YQw 复现 网站安全狗最新…

Electron 渲染进程直接调用主进程的API库@electron/remote引用讲解

背景 remote是个老库&#xff0c;早期Electron版本中有个remote对象&#xff0c;这个对象可以横跨所有进程&#xff0c;随意通信&#xff0c;后来官方认为不安全&#xff0c;被干掉了&#xff0c;之后有人利用Electron的IPC通信&#xff0c;底层通过Promise的await能力&#x…

pytorch lightning报错all tensors to be on the same device

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! 修改指定为gpu trainer pl.Trainer(max_epochstrain_params.iterations, loggertb_logger,acceleratorgpu, devices1)

Air780EP- AT开发-阿里云应用指南

简介 使用AT方式连接阿里云分为一机一密和一型一密两种方式&#xff0c;其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式 关联文档和使用工具&#xff1a; AT固件获取在线加/解密工具阿里云平台 准备工作 Air780EP_全IO开发板一套&#xff0c;包括天线SIM卡&#xff0…

PHP身份证实名认证接口集成守护电商购物

在这个万物互联的世界里&#xff0c;网购已成为日常生活中不可或缺的一部分。然而&#xff0c;随着线上交易的增加&#xff0c;如何保护消费者和商家免受欺诈&#xff0c;确保每一笔交易的安全&#xff0c;成了亟待解决的难题。这时&#xff0c;身份证实名认证接口应运而生&…

在Windows安装、部署Tomcat的方法

本文介绍在Windows操作系统中&#xff0c;下载、配置Tomcat的方法。 Tomcat是一个开源的Servlet容器&#xff0c;由Apache软件基金会的Jakarta项目开发和维护&#xff1b;其提供了执行Servlet和Java Server Pages&#xff08;JSP&#xff09;所需的所有功能。其中&#xff0c;S…

机械学习—零基础学习日志(高数09——函数图形)

零基础为了学人工智能&#xff0c;真的开始复习高数 函数图像&#xff0c;开始新的学习&#xff01; 幂函数 利用函数的性质&#xff0c;以幂函数为例&#xff0c;因为单调性相同&#xff0c;利用图中的2和3公式&#xff0c;求最值问题&#xff0c;可以直接将式子进行简化。这…

贝叶斯算法理论

目录 贝叶斯贝叶斯要解决的问题&#xff1a;Why贝叶斯贝叶斯公式实例——拼写纠正模型比较理论垃圾邮件过滤实例 贝叶斯 贝叶斯要解决的问题&#xff1a; **正向概率&#xff1a;**假设袋子里面有N个白球&#xff0c;M个黑球&#xff0c;你伸手进去摸一把&#xff0c;摸出黑球…

自监督学习在言语障碍及老年语音识别中的应用

近几十年来针对正常言语的自动语音识别&#xff08;ASR&#xff09;技术取得了快速进展&#xff0c;但准确识别言语障碍&#xff08;dysarthric&#xff09;和老年言语仍然是一项极具挑战性的任务。言语障碍是一种由多种运动控制疾病引起的常见言语障碍类型&#xff0c;包括脑瘫…

175道Docker面试题(上)

目录 1、什么是docker&#xff1f; 2、Docker与普通虚拟机的对比&#xff1a; 3、Docker常用命令&#xff1a; 4、Docker镜像是什么&#xff1f; 5、Docker容器是什么&#xff1f; 6、Docker容器有几种状态&#xff1f; 7、Dockerfile中最常见的指令是什么&#xff1f; …

DP学习——状态模式

学而时习之&#xff0c;温故而知新。 状态模式 角色 2个角色&#xff0c;引用类&#xff0c;状态行为类。 和策略模式很相似 状态行为封装成很多独立的状态行为类——就是把不同的状态及其要执行的方法单独封装起来。 而策略模式类似&#xff0c;是不同的算法封装成一个个…

php 根据位置的经纬度计算距离

在开发中,我们要经常和位置打交道,要计算附近的位置、距离什么的。如下: 一.sql语句 SELECT houseID,title,location,chamber,room,toward,area,rent,is_verify,look_type,look_time, traffic,block_name,images,tag,create_time,update_time, location->&g…

RKNN执行bash ./build-linux_RK3566_RK3568.sh 报错

目录 错误信息: 原因:如题提示/3rdparty/mpp/Linux/aarch64/librockchip_mpp.so: file format not recognized; treating as linker script是因为librockchip_mpp.so这个文件夹指向了一个空文件夹 解决方法: 错误信息: /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../..…

【人工智能】使用Python的dlib库实现人脸识别技术

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、传统人脸识别技术1. 基于几何特征的方法2. 基于模板匹配的方法3. 基于统计学习的方法 三、深度学习在脸识别中的应用1. 卷积神经网络&#xff08;CNN&#xff09;2. FaceNet和ArcFace 四、使用Python和dlib库实…

Python @staticmethod、super().__init__()和self

最近在看代码&#xff0c;由于之前没有系统学习过Python&#xff0c;就有些知识点不是很清楚&#xff0c;这里整理一下&#xff0c;方便以后查阅。 Python中的staticmethod\super.init和self Python 装饰器staticmethod和classmethod的作用与区别作用区别代码演示 super() 函数…

【STM32 HAL库】DMA+串口

DMA 直接存储器访问 DMA传输&#xff0c;将数据从一个地址空间复制到另一个地址空间。-----“数据搬运工”。 DMA传输无需CPU直接控制传输&#xff0c;也没有中断处理方式那样保留现场和恢复现场&#xff0c;它是通过硬件为RAM和IO设备开辟一条直接传输数据的通道&#xff0c…

opencv 优势

OpenCV(开源计算机视觉库)是一个广泛使用的计算机视觉和机器学习软件框架。它最初由Intel开发,后来由Itseez公司维护,最终于2015年成为非营利组织OpenCV.org的一部分。OpenCV的目的是实现一个易于使用且高效的计算机视觉框架,支持实时视觉应用。 以下是关于OpenCV的一些关…

浅谈断言之XML断言

浅谈断言之XML断言 XML断言是JMeter的一个组件&#xff0c;用于验证请求的响应数据是否符合XML结构。这对于测试返回XML格式数据的Web服务特别有用。 如何添加XML断言&#xff1f; 要在JMeter测试计划中添加XML断言&#xff0c;遵循以下步骤&#xff1a; 打开测试计划&…

CentOS 6.8 中部署 Spring Boot 应用程序

在CentOS 6.8的系统中本来想通过docker或者宝塔免费来快速部署&#xff0c;结果发现CentOS6.8版本比较老&#xff0c;装docker或宝塔面板都非常费劲&#xff0c;算了就用传统的方式来安装吧。 在 CentOS 6.8 中通过传统的方式部署 Spring Boot 应用程序主要涉及以下几个步骤&a…

Flutter 插件之 easy_refresh(下拉刷新、上拉加载)

今天给大家较少一下日常开发中最常见的一个功能,就是 下拉刷新、上拉加载,这个在我们使用分页功能是最常见的。 此前我我也写了一篇关于 下拉刷新、上拉加载。 Flutter 下拉刷新、上拉加载flutter_easyrefresh的使用https://blog.csdn.net/WangQingLei0307/article/details/…