当前位置: 首页 > news >正文

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;
}

运行结果:

相关文章:

  • QT 范例阅读:系统托盘 The System Tray Icon example
  • React useEffect使用
  • eCos flash模拟EEPROM实现NV系统
  • 高亮显示不一致
  • 【Docker与微服务】基础篇
  • centos7安装google chrome和chromium
  • ArcGIS Pro 按照字段进行融合或拆分
  • 一文讲透ast.literal_eval() eval() json.loads()
  • docker手动迁移镜像
  • mysql 锁知识汇总
  • 2024年:用OKR管理你的生活
  • 【Shell的运行原理以及Linux当中的权限问题】
  • nginx flv模块的使用和源码分析
  • 嵌入式中C 语言中的三块技术难点
  • Python 处理小样本数据的文档分类问题
  • [LeetCode] Wiggle Sort
  • 《深入 React 技术栈》
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 03Go 类型总结
  • 2017年终总结、随想
  • avalon2.2的VM生成过程
  • canvas 绘制双线技巧
  • es6要点
  • Java 最常见的 200+ 面试题:面试必备
  • Java,console输出实时的转向GUI textbox
  • Java程序员幽默爆笑锦集
  • JS笔记四:作用域、变量(函数)提升
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • sessionStorage和localStorage
  • Spring Cloud Feign的两种使用姿势
  • SwizzleMethod 黑魔法
  • windows-nginx-https-本地配置
  • 服务器之间,相同帐号,实现免密钥登录
  • 开发基于以太坊智能合约的DApp
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • const的用法,特别是用在函数前面与后面的区别
  • ​【已解决】npm install​卡主不动的情况
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • (11)MATLAB PCA+SVM 人脸识别
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (层次遍历)104. 二叉树的最大深度
  • (分类)KNN算法- 参数调优
  • (附源码)php新闻发布平台 毕业设计 141646
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)3D模板阴影原理
  • (转)iOS字体
  • (转)mysql使用Navicat 导出和导入数据库
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core 6 集成和使用 mongodb
  • .NET Micro Framework初体验
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NetCore项目nginx发布