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.mzph.cn/news/680448.shtml

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

相关文章

linux应用 进程间通信之信号量(POSIX)

1、前言 1.1 定义 POSIX信号量是一种用于同步进程之间对共享资源访问的机制。它允许进程在访问共享资源之前进行互斥和同步操作&#xff0c;以确保数据的一致性和正确性。POSIX信号量通常由一个整数值表示&#xff0c;可以进行原子增减操作&#xff0c;以及等待和通知操作。 …

【Python网络编程之DHCP服务器】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python开发技术 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Python网络编程之DHCP服务器 代码见资源&#xff0c;效果图如下一、实验要求二、协议原理2.1 D…

线性时间非比较类排序之计数排序

计数排序 计数排序由 HaroldH.Seward 于1954年提出&#xff0c;它是一种非基于比较的排序算法&#xff0c;通过辅助数组来确定各元素的最终位置。因为在排序过程中不存在元素之间的比较和交换操作&#xff0c;所以当待排序数组为整数且数组内数据的范围较小时&#xff0c;其优…

计算x的平方根x含负数和复数cmath.sqrt(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算x的平方根 x含负数和复数 cmath.sqrt(x) cmath.sqrt(-4)输出的结果是&#xff1f; import cmath import math a 4 print("【显示】a ",a) print("【执行】math.sqrt(a)&…

有状态DHCPv6快速模式配置及EUI-64介绍

正文共&#xff1a;1024 字 15 图&#xff0c;预估阅读时间&#xff1a;3 分钟 我们现在已经熟悉了IPv6的地址架构&#xff08;IPv6地址架构一本通&#xff09;&#xff0c;掌握了IPv6地址的手工配置方式&#xff08;IPv6从入门到精通&#xff09;和DHCPv6有状态地址配置&#…

openssl3.2 - osslsigncode工程的学习

文章目录 openssl3.2 - osslsigncode工程的学习概述笔记工程库地址工程的编译osslsigncodeM工程文件列表osslsigncodeM工程搭建细节原始工程实现的改动自己封装的包含openssl和curl的实现osslsigncodeM工程命令行的用法备注 - VS2019调试环境备注 - 如果要单步openssl的API学学…

第六篇:MySQL图形化管理工具

经过前五篇的学习&#xff0c;对于数据库这门技术的理解&#xff0c;我们已经在心中建立了一个城堡大致的雏形&#xff0c;通过命令行窗口&#xff08;cmd&#xff09;快速上手了【SQL语法-DDL-数据定义语言】等相关命令 道阻且长&#xff0c;数据库技术这一宝藏中还有数不清的…

人脸追踪案例及机器学习认识

1.人脸追踪机器人初制 用程序控制舵机运动的方法与机械臂项目完全相同。 由于摄像头的安装方式为上下倒转安装&#xff0c;我们在编写程序读取图像时需使用 flip 函数将 图像上下翻转。 现在&#xff0c;只需要使用哈尔特征检测得到人脸在图像中的位置&#xff0c;再指示舵机运…

796. 子矩阵的和

Problem: 796. 子矩阵的和 文章目录 思路解题方法复杂度Code 思路 这是一个二维前缀和的问题。二维前缀和的主要思想是预处理出一个二维数组&#xff0c;使得每个位置(i, j)上的值表示原数组中从(0, 0)到(i, j)形成的子矩阵中所有元素的和。这样&#xff0c;对于任意的子矩阵(x…

MySQL数据库应用实验报告——实验1 表结构创建

实验1 表结构创建 创建用于大学管理的高校管理数据库&#xff0c;数据库名为GXGL&#xff0c;包含学生的信息&#xff0c;教学单位信 息、专业信息&#xff0c;教职工信息、课程的相关信息以及学生选课信息。数据库GXGL包含下列 六个表: (1) Students: 学生信息表 (2) Depar…

N1CTF奖品一个月的ZoomEye账户使用与子域名收集(网络渗透测)

首页 - 网络空间测绘,网络安全,漏洞分析,动态测绘,钟馗之眼,时空测绘,赛博测绘 - ZoomEye("钟馗之眼")网络空间搜索引擎https://www.zoomeye.org/ZoomEye - Cyberspace Search Enginehttps://www.zoomeye.org/aboutZoomEye&#xff08;“钟馗之眼”&#xff09;是知道…

幻兽帕鲁游戏官方更新了版本,联机时提示版本不适用,无法加入,怎么办?

如果你在登录游戏的时候提示&#xff1a;您正在尝试加入的比赛正在运行不兼容的游戏版本。请尝试升级游戏版本。此时就说明你需要更新部署在服务器内的幻兽帕鲁了。 1、如果你使用幻兽帕鲁应用模板部署游戏&#xff0c;那么可以选择使用游戏配置面板一键更新。 2、如果你使用一…

Day46 300最长递增子序列 674最长连续递增子序列 718最长重复子数组 1143最长公共子序列

300 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序…

《UE5_C++多人TPS完整教程》学习笔记7 ——《P8 为项目配置 Steam(Configuring A Project for Steam)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P8 为项目配置 Steam&#xff08;Configuring A Project for Steam&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&…

基于设计模式,实现分布式锁的资源管理

org.redisson.api.RLock&#xff0c;是目前较为常见的分部署锁实现方式。我们的目的是实现自动管理锁的获取和释放。 但遗憾的是&#xff0c;RLock并不实现AutoCloseable接口&#xff0c;因此不能直接用在try-with-resources结构中。不过&#xff0c;我们可以通过创建一个包装类…

【RISC-V DSP设计】基于CEVA DSP架构的指令集分析(一)-总体介绍

目录 一、引言 二、CEVA-BX1™ DSP Library 概述 三、CEVA-BX1™ DSP Library 功能与特点 四、CEVA-BX1™ DSP Library 优势 今天开始我们继续对CEVA DSP的架构和指令集进行分析&#xff0c;基于对CEVA DSP的分析和了解&#xff0c;后续可以进行基于RISC-V内核架构的DSP指令…

【Python】洛谷P4325 [COCI2006-2007#1] Modulo

P4325 [COCI2006-2007#1] Modulo 题面翻译 给出 10 10 10 个整数&#xff0c;问这些整数除以 42 42 42 后得到的余数有多少种。 第一个样例的十个结果是 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 1,2,3,4,5,6,7,8,9,10 1,2,3,4,5,6,7,8,9,10&#xff0c;有 10 10 10 个不…

软件架构与系统架构:区别与联系的分析

软件架构与系统架构&#xff1a;区别与联系的分析 在信息技术领域&#xff0c;软件架构和系统架构这两个术语经常被提及。尽管它们在某些方面有重叠&#xff0c;但它们确实代表了不同的概念和聚焦点。理解这两种架构之间的区别和联系对于任何从事技术开发和设计的专业人士都是至…

【C语言】指针专项练习 都是一些大厂的笔试真题 附有详细解析,带你深入理解指针

一.sizeof()与strlen() sizeof是一个操作符&#xff0c;而strlen是一个库函数。 数组名代表首元素地址&#xff0c;有两种情况例外&#xff0c;第一种是数组名单独放在sizeof内部&#xff0c;第二种是&数组名&#xff0c;这两种情况下数组名代表的是整个数组。sizeof(arr…

ES实战--wildcard正则匹配exists过滤字段是否存在

wildcard 通配符中的 * 表示任意数量的字符 ?表示任意单个字符 #正则匹配 GET /wildcard-test/_search {"query": {"wildcard": {"title": {"wildcard": "ba*n"}}} } #响应:"hits": {"total": {"…