2024.2.3 作业

1、实现单向循环链表的头插头删尾插尾删

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef int datatype;
typedef struct node
{//数据域int data;//指针域struct node *next;
}*Linklist;
Linklist create()
{Linklist s=(Linklist)malloc(sizeof(struct node));if(s==NULL)return NULL;s->data=0;s->next=s;return s;
}
Linklist head_insert(Linklist head,datatype element)
{Linklist s=create();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;
}
void output(Linklist head)
{if(head==NULL){puts("empty!");return;}Linklist p=head;do{printf("%-5d",p->data);p=p->next;}while(p!=head);puts("");
}
//头删
Linklist head_delete(Linklist head)
{if(head==NULL)return NULL;else{Linklist p=head;while(p->next!=head)p=p->next;Linklist del=head;head=head->next;free(del);p->next=head;del=NULL;}return head;
}
Linklist rear_insert(Linklist head,datatype element)
{Linklist p=head;Linklist s=create();s->data=element;if(head==NULL){head=s;}else{while(p->next!=head){p=p->next;}p->next=s;s->next=head;}return head;}
Linklist rear_delete(Linklist head)
{Linklist p=head;if(head==NULL)return NULL;else{while(p->next==head){free(head);head=NULL;return head;}while(p->next->next!=head){p=p->next;}Linklist del=p->next;free(del);p->next=head;}return head;
}
int main(int argc, const char *argv[])
{Linklist head=NULL;datatype element;int n;printf("please enter the len of linklist:");scanf("%d",&n);for(int i=0;i<n;i++){	printf("please enter the %dth num:",i+1);scanf("%d",&element);//头插head=head_insert(head,element);//尾插//head=rear_insert(head,element);}output(head);//头删head=head_delete(head);printf("the new linklist is:");output(head);//尾删//head=rear_delete(head);//printf("the new linklist is:");//output(head);return 0;
}

2、编程实现单向循环链表的约瑟夫环

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef int datatype;
typedef struct node
{//数据域int data;//指针域struct node *next;
}*Linklist;
Linklist create()
{Linklist s=(Linklist)malloc(sizeof(struct node));if(s==NULL)return NULL;s->data=0;s->next=s;return s;
}
Linklist head_insert(Linklist head,datatype element)
{Linklist s=create();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;
}
void output(Linklist head)
{if(head==NULL){puts("empty!");return;}Linklist p=head;do{printf("%-5d",p->data);p=p->next;}while(p!=head);puts("");
}
//头删
Linklist head_delete(Linklist head)
{if(head==NULL)return NULL;else{Linklist p=head;while(p->next!=head)p=p->next;Linklist del=head;head=head->next;free(del);p->next=head;del=NULL;}return head;
}
Linklist rear_insert(Linklist head,datatype element)
{Linklist p=head;Linklist s=create();s->data=element;if(head==NULL){head=s;}else{while(p->next!=head){p=p->next;}p->next=s;s->next=head;}return head;}
Linklist rear_delete(Linklist head)
{Linklist p=head;if(head==NULL)return NULL;else{while(p->next==head){free(head);head=NULL;return head;}while(p->next->next!=head){p=p->next;}Linklist del=p->next;free(del);p->next=head;}return head;
}
Linklist josefh(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;}puts("");return head;
}
int main(int argc, const char *argv[])
{Linklist head=NULL;datatype element;int n;printf("please enter the len of linklist:");scanf("%d",&n);for(int i=0;i<n;i++){	printf("please enter the %dth num:",i+1);scanf("%d",&element);//头插//head=head_insert(head,element);//尾插head=rear_insert(head,element);}//output(head);//头删//head=head_delete(head);//printf("the new linklist is:");//output(head);//尾删//head=rear_delete(head);//printf("the new linklist is:");//output(head);//约瑟夫环datatype m;printf("please enter the m:");scanf("%d",&m);head=josefh(head,n,m);return 0;
}

3、实现单向循环链表的排序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef int datatype;
typedef struct node
{//数据域int data;//指针域struct node *next;
}*Linklist;
Linklist create()
{Linklist s=(Linklist)malloc(sizeof(struct node));if(s==NULL)return NULL;s->data=0;s->next=s;return s;
}
void output(Linklist head)
{if(head==NULL){puts("empty!");return;}Linklist p=head;do{printf("%-5d",p->data);p=p->next;}while(p!=head);puts("");
}Linklist rear_insert(Linklist head,datatype element)
{Linklist p=head;Linklist s=create();s->data=element;if(head==NULL){head=s;}else{while(p->next!=head){p=p->next;}p->next=s;s->next=head;}return head;}
datatype length(Linklist head)
{int len=0;Linklist p=head;do{p=p->next;len++;}while(p!=head);return len;}
void Bubble(Linklist head)
{if(head==NULL)return;int len=length(head);for(int i=1;i<len;i++){Linklist p=head;for(int j=0;j<len-i;j++){if(p->data>p->next->data){datatype t=p->data;p->data=p->next->data;p->next->data=t;}p=p->next;}}
}
int main(int argc, const char *argv[])
{Linklist head=NULL;datatype element;int n;printf("please enter n:");scanf("%d",&n);for(int i=0;i<n;i++){	printf("please enter the %dth num:",i+1);scanf("%d",&element);//尾插head=rear_insert(head,element);}//冒泡排序Bubble(head);output(head);return 0;
}

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

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

相关文章

如何在C# Windows Forms应用程序中实现控件之间的连接线

帮我实现绘图工具多个控件连接线&#xff0c;请用c#代码实现 实现绘图工具中多个控件之间的连接线功能&#xff0c;可以通过以下几个步骤来进行&#xff1a; 定义连接线的数据模型&#xff1a;首先需要定义一个模型来表示连接线&#xff0c;这个模型应该包含起点和终点的坐标。…

内网穿透 | 推荐两个免费的内网穿透工具

目录 1、简介 2、Ngrok 2.1、下载安装 2.2、运行 2.3、固定域名 2.4、配置多服务 3、cpolar 3.1、下载安装 3.2、运行 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应…

【AutoML】AutoKeras 进行 RNN 循环神经网络训练

由于最近这些天都在人工审查之前的哪些问答数据&#xff0c;所以迟迟都没有更新 AutoKeras 的训练结果。现在那部分数据都已经整理好了&#xff0c;20w 的数据最后能够使用的高质量数据只剩下 2k。这 2k 的数据已经经过数据校验并且对部分问题的提问方式和答案内容进行了不改变…

【龙年大礼】| 2023中国开源年度报告!

【中国开源年度报告】由开源社从 2015 年发起&#xff0c;是国内首个结合多个开源社区、高校、媒体、风投、企业与个人&#xff0c;以纯志愿、非营利的理念和开源社区协作的模式&#xff0c;携手共创完成的开源研究报告。后来由于一些因素暂停&#xff0c;在 2018 年重启了这个…

基于Qt的人脸识别项目(功能:颜值检测,口罩检测,表情检测,性别检测,年龄预测等)

目录 效果展示代码讲解(待更新)需求一.创建项目二.导入Qt中的摄像头包查看QCamera类的帮助文档三.导入QCameraViewfinder调用百度AI接口完整代码链接完整代码链接在文章末尾 效果展示

react+antd+CheckableTag实现Tag标签单选或多选功能

1、效果如下图 实现tag标签单选或多选功能 2、环境准备 1、react18 2、antd 4 3、功能实现 原理: 封装一个受控组件&#xff0c;接受父组件的参数&#xff0c;数据发现变化后&#xff0c;回传给父组件 1、首先&#xff0c;引入CheckableTag组件和useEffect, useMemo, use…

CSS之水平垂直居中

如何实现一个div的水平垂直居中 <div class"content-wrapper"><div class"content">content</div></div>flex布局 .content-wrapper {width: 400px;height: 400px;background-color: lightskyblue;display: flex;justify-content:…

在Linux系统中设置全局HTTP代理的步骤与技巧

在Linux系统中&#xff0c;设置全局HTTP代理可以方便我们统一管理和控制网络请求。这不仅可以帮助我们加速网络访问&#xff0c;还可以在某些情况下绕过网络限制或实现匿名上网。下面&#xff0c;我将为你详细介绍在Linux系统中设置全局HTTP代理的步骤与技巧。 步骤一&#xf…

【c++】内联函数

Hello everybody!今天咱们来讲一下内联函数&#xff0c;它在某些方面还是很有用的&#xff01; 1.定义 以inline修饰的函数叫做内联函数&#xff0c;编译时c编译器会在调用内联函数的地方展开&#xff0c;没有函数调用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。…

mysql8.0.36主从复制(读写分离)配置教程

1、关闭防火墙 使用命令行关闭防火墙 在Ubuntu系统中&#xff0c;可以使用以下命令关闭防火墙&#xff1a; sudo ufw disable执行该命令后&#xff0c;系统会提示是否要关闭防火墙&#xff0c;确认后即可关闭防火墙。 查看防火墙状态 使用以下命令可以查看防火墙当前的状…

apk反编译修改教程系列---简单修改apk默认横竖屏显示 手机端与电脑端同步演示【十一】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…

【python量化交易】qteasy使用教程02 - 获取和管理金融数据

qteasy教程2 - 获取并管理金融数据 qteasy教程2 - 获取并管理金融数据开始前的准备工作获取基础数据以及价格数据下载交易日历和基础数据查看股票和指数的基础数据下载沪市股票数据从本地获取股价数据生成K线图 数据类型的查找定期下载数据到本地回顾总结 qteasy教程2 - 获取并…

Swift Combine 网络受限时从备用 URL 请求数据 从入门到精通十四

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三Swift Combine 发布者publisher的生命周期 从入门到精通四Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五Swift Com…

【python】网络爬虫与信息提取--Beautiful Soup库

Beautiful Soup网站&#xff1a;https://www.crummy.com/software/BeautifulSoup/ 作用&#xff1a;它能够对HTML.xml格式进行解析&#xff0c;并且提取其中的相关信息。它可以对我们提供的任何格式进行相关的爬取&#xff0c;并且可以进行树形解析。 使用原理&#xff1a;它能…

红队打靶练习:Alfa:1

下载连接点击此处即可&#xff01; 目录 信息收集 1、arp 2、nmap 3、gobuster WEB web信息收集 FTP登录 smaba服务 crunch密码生成 提权 系统信息收集 权限提升 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, …

web3知识体系汇总

web3.0知识体系 1.行业发展 2. web3的特点&#xff1a; 1、统一身份认证系统 2、数据确权与授权 3、隐私保护与抗审查 4、去中心化运行 Web3.0思维技术思维✖金融思维✖社群思维✖产业思维”&#xff0c;才能从容理解未来Web3.0时代的大趋势。 3.技术栈 Web3.jsSolidit…

【电路笔记】-并联电感

并联电感 文章目录 并联电感1、概述2、并联电感示例13、互耦并联电感器4、并联电感示例25、并联电感示例36、总结当电感器的两个端子分别连接到另一个或多个电感器的每个端子时,电感器被称为并联连接在一起。 1、概述 所有并联电感器上的压降将是相同的。 然后,并联的电感器…

离散数学——图论(笔记及思维导图)

离散数学——图论&#xff08;笔记及思维导图&#xff09; 目录 大纲 内容 参考 大纲 内容 参考 笔记来自【电子科大】离散数学 王丽杰

工厂方法模式(Factory Method Pattern)

原文地址:https://jaune162.blog/design-pattern/factory-method-pattern/ 概述 工厂方法模式(Factory Method Pattern)是一个对象创建型模式。 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的实例化延迟到其子类。 – 《设计模式:可复…

ubuntu20.04 安装mysql(8.x)

安装mysql命令 sudo apt-get install mysql-server安装完毕后&#xff0c;立即初始化密码 sudo mysql -u root # 初次进入终端无需密码ALTER USER rootlocalhost IDENTIFIED WITH caching_sha2_password BY yourpasswd; # 设置本地root密码设置mysql远程登录 设置远程登录账…