2024.2.3

单向循环链表的头插 头删 尾插和尾删

//头结点插入
Linklist insere_element(Linklist head,datatype element)
{
	Linklist s=creat();
	s->data=element;
	if(NULL==head)
	{
		head=s;
	}
	else
	{
		Linklist p=head;
		while(p->next!=head)
		{
			p=p->next;
		}
		s->next=head;
		head=s;
		p->next=head;
	}
	return head;
}
/头删
Linklist head_del(Linklist head)
{
	if(NULL==head)
		return head;
	Linklist del=head;
	head=head->next;
	free(del);
	del=NULL;
	return head;
}

//尾插法
Linklist insert_rear(Linklist head,datatype element)
{
	//先创建一个结点
	Linklist s=creat();
	s->data=element;
	//判断是否为空
	if(head==NULL)
	{
		head=s;
	}
	else
	//有多个节点的情况
	{
		Linklist p=head;//防止返回的时候出错,定义p为head,否则head改变后返回是错误的
		//找到最后一个结点
		while(p->next)
		{
			p=p->next;
		}
		p->next=s;
	}
	return head;
}
//尾删
Linklist rear_del(Linklist head)
{
	Linklist del=NULL;
	if(NULL==head)
		return head;
	else if(head->next==NULL)
	{
		free(head);
		head==NULL;
	}
	else
	{
		del=head;
		while(del->next->next)
		{
			del=del->next;
		}
		free(del->next);
		del->next=NULL;
	}
	return head;
}

约瑟夫环

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum
{
	FALSE=-1,
	SUCCESS
};
typedef int datatype;
typedef struct Node
{
	datatype data;
	struct Node *next;
}*linklist;
linklist creat();
linklist insert_rear(linklist head,datatype element);
void output(linklist head);
linklist Joseph(linklist head,int n,int m);
linklist Joseph(linklist head,int n,int m)
{
	if(head==NULL)
		return head;
	linklist p=head;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m-2;j++)
		{
			p=p->next;
		}
		linklist del=p->next;
		printf("%-5d",del->data);
		p->next=del->next;
		free(del);
		del=NULL;
		p=p->next;
	}
	return NULL;
}
int main(int argc, const char *argv[])
{
	//定义头指针
	linklist head=NULL;
	int n;
	datatype element;
	printf("please enter n:");
	scanf("%d",&n);
	//循环写入
	for(int i=0;i<n;i++)
	{
		printf("please enter element:");
		scanf("%d",&element);
		head=insert_rear(head,element);
	}
	//遍历
	output(head);
    //约瑟夫环
	int m;
	printf("please enter m:");
	scanf("%d",&m);
	head=Joseph(head,n,m);
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)

前言 大家好吖&#xff0c;欢迎来到 YY 滴单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

Netflix Mac(奈飞mac客户端) v2.13.0激活版

Clicker for Netflix Mac版是一款适用于Mac的最佳独立Netflix播放器&#xff0c;具有直接从从Dock启动Netflix&#xff0c;从触摸栏控制Netflix&#xff0c;支持画中画等多种功能&#xff0c;让你拥有更好的观看体验。 软件特色 •直接从Dock启动Netflix •从触摸栏控制Netflix…

迅为STM32MP157开发板底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块

底板扩展接口丰富 底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口CAMERA接口、ADC电位器、SPDIF、SDIO接口等。 支持多种显示屏 迅为在MP157开发板支持了多种屏幕&#xff0…

C# 使用 MailKit 发送邮件(附demo)

C# 使用 MailKit 发送邮件&#xff08;附demo&#xff09; 介绍安装包&#xff08;依赖&#xff09;案例简单代码属性介绍&#xff1a;MailboxAddress属性介绍&#xff1a;BodyBuilderSMTP 服务器端口SSL的案例&#xff1a;非SSL&#xff1a; 介绍一下SMTP 介绍 MailKit 是一…

2024年【高压电工】考试内容及高压电工模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 高压电工考试内容参考答案及高压电工考试试题解析是安全生产模拟考试一点通题库老师及高压电工操作证已考过的学员汇总&#xff0c;相对有效帮助高压电工模拟试题学员顺利通过考试。 1、【单选题】 FN5-10的型号含意是…

「Kafka」消费者篇

「Kafka」消费者篇 Kafka 消费方式 Kafka 消费者工作流程 消费者总体工作流程 新版本&#xff08;0.9之后&#xff09;的 offset 保存在 kafka 的 Topic 里&#xff0c;持久化到磁盘&#xff0c;可靠性有保障。 老版本&#xff08;0.9之前&#xff09;的 offset 保存在 Zook…

2.0 Hadoop 运行环境

由于 Hadoop 是为集群设计的软件&#xff0c;所以我们在学习它的使用时难免会遇到在多台计算机上配置 Hadoop 的情况&#xff0c;这对于学习者来说会制造诸多障碍&#xff0c;主要有两个&#xff1a; 昂贵的计算机集群。多计算机构成的集群环境需要昂贵的硬件.难以部署和维护。…

LeetCode_19_中等_删除链表的倒数第N个结点

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 计算链表长度2.2 栈 1. 题目 给你一个链表&#xff0c;删除链表的倒数第 n n n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a; h e a d [ 1 , 2 , 3 , 4 , 5 ] , n…

爬虫(二)

1.同步获取短视频 1.只要播放地址对Json数据解析&#xff0c;先把列表找出&#xff1a; 2.只想要所有的播放地址&#xff0c;通过列表表达式循环遍历这个列表拿到每个对象&#xff0c;再从一个个对象里面找到Video,再从Video里面找到播放地址(play_addr),再从播放地址找到播放…

大模型增量预训练新技巧:解决灾难性遗忘

大家好&#xff0c;目前不少开源模型在通用领域具有不错的效果&#xff0c;但由于缺乏领域数据&#xff0c;往往在一些垂直领域中表现不理想&#xff0c;这时就需要增量预训练和微调等方法来提高模型的领域能力。 但在领域数据增量预训练或微调时&#xff0c;很容易出现灾难性…

Github 2024-02-04 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-04统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目6Ruby项目1HTML项目1C项目1Go项目1TypeScript项目1 Windows 终端、控制台和命令行存储库 创建周期…

2024年新版全国行政区划代码

嗨喽&#xff0c;大家好&#xff0c;我是小码哥&#xff0c;今天免费将2024年全国行政区划代码分享给大家&#xff0c;已经整理成sql和excel文件&#xff0c;方便大家直接使用&#xff0c;文章末尾直接获取。 01-数据来源 根据国家统计局官网统计查询&#xff0c;目前全国最新…

mermaid使用指南+notion使用实例-持续更新中

最近一个月了吧&#xff0c;发现Notion插入图片的功能坏了&#xff0c;直接paste会404&#xff0c;本地上传也不行。电脑本地版和手机端都插不了图片&#xff0c;很头疼。解决方法也简单&#xff0c;用图床&#xff0c;放链接。 付费版我用的七牛&#xff0c;结合PicGo&#x…

C#,雅各布斯塔尔—卢卡斯(Jacobsthal Lucas Number)的算法与源代码

1 雅各布斯塔尔序列 雅各布斯塔尔序列是一个与斐波那契序列类似的加法序列&#xff0c;由递归关系JnJn-12Jn-2定义&#xff0c;初始项J00&#xff0c;J11。序列中的一个数字称为雅可布沙尔数。它们是卢卡斯序列Un&#xff08;P&#xff0c;Q&#xff09;的一种特殊类型&#x…

SmartX 在保险(2023):服务 40+ 客户,聚焦信创转型与高性能数据库场景

更新内容&#xff1a; 更新 SmartX 超融合在保险行业的覆盖范围与部署规模。更新保险客户超融合应用情况。新增 Nutanix 国产化替代、高性能数据库构建与验证、企业云原生转型等场景实践。更多超融合金融核心生产业务场景实践&#xff0c;欢迎阅读文末电子书。 近两年来&…

[Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题

什么是线性回归和逻辑回归&#xff1f; 线性回归是一种用于解决回归问题的统计模型。它通过建立自变量&#xff08;或特征&#xff09;与因变量之间的线性关系来预测连续数值的输出。线性回归的目标是找到一条直线&#xff08;或超平面&#xff09;&#xff0c;使得预测值与观…

华为数通方向HCIP-DataCom H12-821题库(单选题:421-440)

第421题 以下关于IS-IS中路由器分类的描述,错误的是哪一项? A、Level-1路由器无法与Level-2路由器建立邻接关系 B、华为路由器上配置IS-IS时,缺省时,路由器全局Level为Level-1-2 C、Level-2的LSDB只包含Level-2路由器所在区域的路由信息 D、Level-1路由器可以和Level-1-2路…

vite打包原理

vite 工程化开发&#xff1a;打包工具 启动速度很快 核心原理还是webpack 把webpack封装了&#xff0c;把webpack对象封装了 和vue2整体结构几乎一致 webpack两种模式&#xff1a;开发&生产 代码打包编译&#xff0c;本地起一个web服务器实时预览编译后的结果 build 命令模…

Go协程揭秘:轻量、并发与性能的完美结合

目录 1. Go协程简介什么是Go协程&#xff1f;Go协程与线程的比较Go协程的核心优势 2. Go协程的基本使用创建并启动Go协程使用匿名函数创建Go协程Go协程与主函数 3. Go协程的同步机制1. 通道 (Channels)2. sync.WaitGroup3. 互斥锁 (sync.Mutex) 4. Go协程的高级用法1. 选择器 (…

jss/css/html 相关的技术栈有哪些?

js 的技术组件有哪些&#xff1f;比如 jQuery vue 等 常见的JavaScript技术组件&#xff1a; jQuery&#xff1a; jQuery是一个快速、小巧且功能丰富的JavaScript库&#xff0c;用于简化DOM操作、事件处理、动画效果等任务。 React&#xff1a; React是由Facebook开发的用于构…