2.3作业

作业要求:

程序代码:

#include<stdlib.h>
#include<string.h>
#include<stdio.h>
typedef struct node //定义链表节点结构体:数据域、指针域
{int data;struct node *next;
}*linklist;linklist create_node()//创建新节点并初始化,返回节点地址
{linklist s=(linklist)malloc(sizeof(struct node));if(NULL==s)return NULL;s->data=0;s->next=s;return s;
}//头插
linklist insert_head(linklist head,int element)
{linklist s=create_node();if(NULL==s)return NULL;s->data=element;if(NULL==head){head=s;return head;}linklist p=head;while(p->next!=head){p=p->next;}s->next=head;head=s;p->next=head;return head;
}//尾插
linklist insert_rear(linklist head,int element)
{linklist s=create_node();	if(NULL==s){puts("fail");return NULL;}s->data=element;if(NULL==head){head=s;return head;}linklist p=head;while(p->next!=head)p=p->next;p->next=s;s->next=head;return head;
}//输出
void output(linklist head)
{linklist p=head;while(p->next!=head){printf("%-3d",p->data);p=p->next;}printf("%-3d\n",p->data);
}//头删
linklist delete_head(linklist head)
{if(NULL==head){puts("empty");return head;		}if(head==head->next){free(head);return NULL;}linklist del=head;linklist p=head;while(p->next!=head)p=p->next;head=head->next;p->next=head;free(del);del=NULL;return head;
}//尾删
linklist delete_rear(linklist head)
{if(NULL==head){puts("empty");return head;		}if(head==head->next){free(head);return NULL;}linklist p=head;while(p->next->next!=head)p=p->next;linklist del=p->next;p->next=head;free(del);del=NULL;return head;
}//约瑟夫环
void josephus(linklist head,int len,int m)
{linklist p=head;for(int i=1;i<=len;i++){for(int j=1;j<=m-2;j++){p=p->next;}linklist del=p->next;printf("%-3d" ,del->data);p->next=del->next;free(del);p=p->next;}puts("");
}//排序
void simple_sort(linklist head)
{linklist p=head;for(p;p->next!=head;p=p->next){linklist min=p;for(linklist q=p->next;q!=head;q=q->next){if(min->data > q->data)min=q;}if(min!=p){int t=min->data;min->data=p->data;p->data=t;}}
}
int main(int argc, const char *argv[])
{linklist head=NULL;int len;printf("please input length:");scanf("%d",&len);
//	int element;
//	for(int i=0;i<len;i++)
//	{
//		printf("please input %d element:",i+1);
//		scanf("%d",&element);
//		head=insert_head(head,element);//头插
//		head=insert_rear(head,element);//尾插
//	}		
//	simple_sort(head);//排序
//	output(head);//输出
//	head=delete_head(head);//头删
//	head=delete_rear(head);//尾删
//	output(head);//代码实现约瑟夫环for(int i=1;i<=len;i++){head=insert_rear(head,i);//根据长度循环尾插输入约瑟夫环内数值;}output(head);//遍历int m;printf("please input m of the josephus:" );scanf("%d",&m);josephus(head,len,m);head=delete_head(head);//头删head=delete_head(head);output(head);head=delete_rear(head);//尾删output(head);return 0;
}

运行结果:

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

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

相关文章

C++类和对象入门(三)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 前言 在c中&#xff0c;类型分为两类&#xff0c;一类是内置类型&#xff0c;另一类是自定义类型。 1.内置类型&#xf…

Linux内存管理:(十二)Linux 5.0内核新增的反碎片优化

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 外碎片化发生时&#xff0c;页面分配…

Python基础知识:Python流程控制语句

流程控制就是控制程序如何执行的方法&#xff0c;适用于任何一门编程语言&#xff0c;其作用在于&#xff0c;可以根据用户的需求决定程序执行的顺序。计算机在运行程序时&#xff0c;有3种执行方法&#xff0c;第一种是顺序执行&#xff0c;自上而下顺序执行所有的语句&#x…

分享63个节日PPT,总有一款适合您

分享63个节日PPT&#xff0c;总有一款适合您 63个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1kZeiN06KbevtSCs5vXm6oA?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

【代码随想录-哈希表】两个数组的交集

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

MySQL 小技巧:使用 xtrabackup 2.4 实现 完全备份及还原

演示&#xff1a;使用 xtrabackup 2.4 实现 完全备份及还原 本案例基于 CentOS 7 的 Mariadb5.5 实现&#xff0c;也支持 MySQL5.5 和 MySQL5.7 1) 安装 xtrabackup 包 // 先安装 Mariadb5.5 和 xtrabackup 包 [rootcentos7 ~] yum install mariadb-server -y [rootcentos7 ~]…

802.11 MAC帧介绍

控制帧 RTS&#xff08;Request To Send&#xff09;&#xff1a;用于申请无线媒介的使用时间CTS&#xff08;Clear To Send&#xff09;&#xff1a;用于回复RTS帧ACK&#xff1a;对MAC帧的肯定确认PS-POLL&#xff1a;STA用于从AP中获取因省电模式而缓存的数据&#xff0c;只…

AMH面板如何安装与公网远程访问本地面板界面

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

解析 JavaScript 异步编程:从回调地狱到 Promise 和 Async/Await

在现代的JavaScript开发中&#xff0c;处理异步任务变得愈发重要&#xff0c;因为它们允许我们在等待I/O、网络请求或定时器等事件时继续执行其他任务&#xff0c;以提高程序的性能和响应能力。本文将介绍JavaScript中异步编程的演变过程&#xff0c;从最初的回调地狱到后来的P…

Leetcode 3026. Maximum Good Subarray Sum

Leetcode 3026. Maximum Good Subarray Sum 1. 解题思路2. 代码实现 题目链接&#xff1a;3026. Maximum Good Subarray Sum 1. 解题思路 这一题的话主要就是要快速遍历所有的good subarray并快速获得每一个good subarray的和的最大值。 因此&#xff0c;问题就主要就成了两…

蓝桥杯刷题--python-2

0星期一 - 蓝桥云课 (lanqiao.cn) import datetimestart = datetime.date(1901, 1, 1) end = datetime.date(2000, 12, 31)res = 0 while not start > end:if start.weekday() == 0:res += 1start += datetime.timedelta(days=1) print(res)datetime 模块 import datetime…

容器和镜像

容器和镜像是现代软件开发和部署中重要的概念&#xff0c;它们通常与容器化技术&#xff08;如Docker&#xff09;相关联。以下是它们的基本定义和关系&#xff1a; 容器(Container): 容器是一种轻量级、可移植的运行环境&#xff0c;其中包含了应用程序及其依赖项&#xff08;…

简单实践 spring clound 使用openfeign

1.概要 这是在前面工程基础上的一个变更。 前工程&#xff1a;检查实验 spring cloud nacos nacos-server-2.3.0-CSDN博客 2 代码 2.1 引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-open…

您企业的(AI)人工智能处于哪个准备阶段?

全新AI准备度评估工具现已推出 根据Gartner 2020年CIO调查报告&#xff0c;仅19%的首席信息官声称其AI项目已投产。这意味着&#xff0c;如果要将AI计划部署到生产过程中&#xff0c;高达80%的企业无法实现。我们发现&#xff0c;澳鹏客户取得成功的几率要高出三倍&#xff0c…

一个运维团队最缺什么样的领导

摘要&#xff1a; 技术专业知识&#xff1a;作为技术领导者&#xff0c;你需要具备深入的技术专业知识&#xff0c;了解行业的最新趋势和发展。这样你才能更好地理解团队面临的技术挑战&#xff0c;并提供准确的指导和决策。 领导力&#xff1a;作为领导者&#xff0c;你需要…

孙子定理和“物不知数”问题

孙子定理和“物不知数”问题 孙子定理&#xff0c;也称为中国剩余定理或中国余数定理。孙子定理是中国古代求解一次同余式组&#xff08;见同余&#xff09;的方法。此定理&#xff0c;在公元5-6世纪的中国南北朝时期的数学家孙子提出的“物不知数”问题可以被视为中国剩余定…

C++类与对象(下)

前言&#xff1a;哈喽小伙伴们&#xff0c;这篇文章我们将继续分享类与对象的剩余知识。 目录 一.const修饰成员函数 二.再谈构造函数 三.友元 1.友元函数 2.友元类 总结 一.const修饰成员函数 我们都知道const是一个将变量定义为静态的关键字&#xff0c;使其不能被修改…

C语言之自定义类型:结构体

目录 1. 结构体类型的声明结构体回顾结构的声明 2. 结构体变量的创建和初始化结构体的特殊声明结构体的自引用 3. 结构体内存对齐对齐规则对齐规则练习1对齐规则练习2对齐规则练习3对齐规则练习4 为什么存在内存对齐offsetof - 计算结构体成员相较于起始位置的偏移量修改默认对…

道可云元宇宙每日资讯|北京:推进元宇宙在智慧城市应用

道可云元宇宙每日简报&#xff08;2024年2月2日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 石狮市检察院“元宇宙智慧展馆”正式启用 为深入实施数字检察战略&#xff0c;主动探索元宇宙技术在未成年人检察、公益诉讼检察等方面的应用&#xff0c;打造集案件…

Qt应用软件【协议篇】MQTT协议介绍

文章目录 MQTT简介QT中MQTT的源码什么是 MQTT?MQTT 的工作原理MQTT 的工作流程MQTT 的应用场景智能家居工业物联网(IIoT)车联网环境监测医疗健康物流与供应链智能能源公共安全基于传输层TCP协议上的MQTT应用层协议