2.22 作业

news2024/11/10 13:02:35

顺序表

运行结果

fun.c

#include "fun.h"
seq_p create_seq_list()
{
	seq_p L = (seq_p)malloc(sizeof(seq_list));
	if(L==NULL)
	{
		printf("空间申请失败\n");
		return NULL;
	}
	L->len = 0;  
	bzero(L,sizeof(L->data)); 
	return L;
}
int seq_empty(seq_p L)
{
	if(L==NULL)
	{
		return -1; 
	}
	return L->len==0?1:0;
}

int seq_full(seq_p L)
{
	if(L==NULL)
	{
		return -1;  
	}
	return L->len==MAX?1:0;
}
void insert_head(seq_p L,int data)
{
	if(L==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	if(seq_full(L))
	{
		printf("表已满,不能插入\n");
		return;
	}
	for(int i=L->len-1;i>=0;i--)
	{
		L->data[i+1] = L->data[i];
	}

	L->data[0]=data;
	L->len++;  
}
void insert_tail(seq_p L,int value)
{
	if(L==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	if(seq_full(L))
	{
		printf("表已满,不能插入\n");
		return;
	}
	L->data[L->len]=value;
	L->len++;
}

void out_put(seq_p L)
{
	for(int i=0;i<L->len;i++)
	{
		printf("%d\n",L->data[i]);
	}
}

void insert_pos(seq_p L,int value,int pos)
{	
	if(L==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	if(seq_full(L))
	{
		printf("表已满,不能插入\n");
		return;
	}
	if(pos>L->len||pos<0)
	{
		printf("位置不合理");
		return;
	}
	for(int i=L->len-1;i>=pos;i--)
	{
		L->data[i+1]=L->data[i];
	}
	L->data[pos]=value;
	L->len++;
}

void del_pos(seq_p L,int pos)
{
	if(L==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}	
	if(seq_empty(L))
	{
		printf("表为空,无需删除\n");
		return;
	}
	for(int i=pos;i<L->len-1;i++)
	{
		L->data[i]=L->data[i+1];
	}
	L->len--;
}

void del(seq_p L)
{
	if(L==NULL){return;}
	if(seq_empty(L)){return;}
	if(L->len==1){printf("只有一个元素\n");return;}
	for(int i=0;i<L->len;i++)
	{
		for(int j=i+1;j<L->len;j++)
		{
			if(L->data[i]==L->data[j])
			{
				del_pos(L,j);
				j--;
			} 
		}
	}
}

fun.h

#ifndef __SEQ_LIST_H__
#define __SEQ_LIST_H__
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 7
typedef struct seq_list
{
	int data[MAX];
	int len;
}
seq_list,*seq_p;
seq_p create_seq_list();
int seq_empty(seq_p L);//判满
int seq_full(seq_p L);//判空
void insert_head(seq_p L,int data);//头插
void insert_tail(seq_p L,int value);//尾插
void out_put(seq_p L);//输出
void insert_pos(seq_p L,int value,int pos);//按下标插入
void del_pos(seq_p L,int pos);//按下标删除
void del(seq_p L);//去重
#endif

main.c

#include "fun.h"
int main()
{
	seq_p L = create_seq_list();
	insert_head(L,10);
	insert_head(L,20);
	insert_tail(L,20);
	insert_tail(L,30);
	out_put(L);
	putchar(10);
	insert_pos(L,50,2);
	out_put(L);
	putchar(10);
	del_pos(L,2);
	out_put(L);
	putchar(10);
	del(L);
	out_put(L);
	return 0;
}

链表

//尾插
void insert_tail(link_p H,link_p T,datatype data)
{
	if(T==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	link_p new = create_node(data);
	T->next=new;
	H->len++
}
//输出
void out_put(link_p H)
{
	for(int i=0;i<H->len;i++)
	{
		printf("%d\n",(H->next)->data);
		H->next=(H->next)->next;
	}
}

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

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

相关文章

音频声波的主观感受

一、响度 声压是“客观”的&#xff0c;响度是“主观”的。 响度又称音量。人耳感受到的声音强弱&#xff0c;它是人对声音大小的一个主观感觉量。响度的大小决定于声音接收处的波幅&#xff0c;就同一声源来说&#xff0c;波幅传播的愈远&#xff0c;响度愈小…

mybatis 集成neo4j实现

文章目录 前言一、引入jar包依赖二、配置 application.properties三、Mybatis Neo4j分页插件四、Mybatis Neo4j自定义转换器handler五、MybatisNeo4j代码示例总结 前言 MyBatis是一个基于Java语言的持久层框架&#xff0c;它通过XML描述符或注解将对象与存储过程或SQL语句进行…

面试必问!JVM 不得不说的知识点(三)

一、 JVM指令集: 1. 了解Java虚拟机的指令集是什么?举例说明一些常见的指令及其作用。 Java虚拟机的指令集是一组用于执行Java程序的低级操作码。这些指令直接在Java虚拟机上执行,可以认为是Java程序的二进制表示形式。以下是一些常见的Java虚拟机指令及其作用的例子: ic…

微信小程序 ---- 生命周期

目录 生命周期 1. 小程序运行机制 2. 小程序更新机制 3. 生命周期介绍 4. 应用级别生命周期 5. 页面级别生命周期 6. 生命周期两个细节补充说明 7. 组件生命周期 总结 生命周期 1. 小程序运行机制 冷启动与热启动&#xff1a; 小程序启动可以分为两种情况&#xff0…

【云动世纪:Apache Doris 技术之光】

本文节选自《基础软件之路&#xff1a;企业级实践及开源之路》一书&#xff0c;该书集结了中国几乎所有主流基础软件企业的实践案例&#xff0c;由 28 位知名专家共同编写&#xff0c;系统剖析了基础软件发展趋势、四大基础软件&#xff08;数据库、操作系统、编程语言与中间件…

基于Android的校园请假App的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

【进程创建】

目录 进程创建的方式查看进程pid 调用系统调用创建子进程fock函数做了的工作子进程刚开始创建的状态 一个变量&#xff0c;两个不同的值创建子进程的作用 进程创建的方式 1.在操作系统上输入的指令。 2.已经启动的软件。 3.程序员在代码层面上调用系统调用创建进程。 linux中第…

什么是MES?SCADA与MES有什么区别?

连接制造过程的各个层是构建更有效的操作和自动化系统的关键步骤。SCADA(监控和数据采集)、MES(制造执行系统)和 ERP(企业资源规划)是制造过程中最重要的三个级别。 SCADA用于工厂车间的自动化&#xff0c;ERP在办公室层面自动执行许多任务。MES系统占据了SCADA和ERP之间的空间…

一款跳转警告HTML单页模板源码

一款跳转警告HTML单页模板,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 代码如下 <!DOCTYPE html> <html> <!--QQ沐编程 www.q…

【刷题记录】相交链表

本系列博客为个人刷题思路分享&#xff0c;有需要借鉴即可。 1.题目链接&#xff1a; LINK 2.详解思路&#xff1a; 思路1&#xff1a;用尾结点是否一样来判断是否相交&#xff0c;用相对移位来找到结点 思路2&#xff1a;双层嵌套循环&#xff0c;时间复杂度O&#xff08;N*N&…

06 flink 的各个角色的交互

前言 这里主要是 涉及到 flink 中各个角色的交互 TaskManager 和 ResourceManager 的交互 JobMaster 和 ResourceManager 的交互 等等流程 TaskManager 和 ResourceManager 的交互 主要是 包含了几个部分, 如下, 几个菜单 TaskManager向 ResourceManager 注册 Resou…

学习Markdown

https://shadows.brumm.af 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…

第101讲:Mycat分布式数据库代理系统的核心概念以及部署

文章目录 1.Mycat核心概念1.1.Mycat介绍1.2.Mycat的应用场景1.3.Mycat结构概念1.4.Mycat的原理1.5.Mycat管理 2.部署Mycat 1.Mycat核心概念 1.1.Mycat介绍 Mycat是开源的、活跃的、基于JAVA语言编写的MySQL数据库中间件&#xff0c;可以把它看做是一个代理程序&#xff0c;开…

MariaDB落幕和思考

听过MySQL的基本也都知道 MariaDB。MariaDB由MySQL的创始人主导开发&#xff0c;他早前曾以10亿美元的价格&#xff0c;将自己创建的公司MySQL AB卖给了SUN&#xff0c;此后&#xff0c;随着SUN被甲骨文收购&#xff0c;MySQL的所有权也落入Oracle的手中。传闻MySQL的创始人担心…

融中穿刺路径角度评估的C++技术实现

消融模型的三维渲染 我们以肝部为例&#xff0c;通常肝部在做消融手术规划时有几个步骤。 一三维重建&#xff1a; 对器官进行图像分割&#xff1b; 对肿瘤的原发区域GTV进行勾画。 二穿刺路径的规划&#xff1a; 路径规划当中有几个约束&#xff1a;穿刺深度、危及器官的…

普中51单片机(DS18B20温度传感器)

DS18B20温度传感器原理 内部结构 64位(激)光刻只读存储器 光刻ROM中的64位序列号是出厂前被光刻好的&#xff0c;它可以看作是该DS18B20的地址序列号。64位光刻ROM的排列是&#xff1a;开始8位&#xff08;28H&#xff09;是产品类型标号&#xff0c;接着的48位是该DS18B20自身…

论文精读--GPT1

把transformer的解码器拿出来&#xff0c;在没有标号的大量文本数据上训练一个语言模型&#xff0c;来获得预训练模型&#xff0c;然后到子任务上微调&#xff0c;得到每个任务所需的分类器 Abstract Natural language understanding comprises a wide range of diverse tasks…

祝贺!湖南天府生态农业有限公司喜获“湖南省生猪核心育种场”授牌

为贯彻落实全国畜禽遗传改良计划&#xff0c;根据《湖南省种业振兴行动实施方案》以及省农业农村厅办公室《关于开展省级种畜禽核心场遴选工作的通知》&#xff0c;湖南省农业农村厅组织省畜禽遗传资源委员会在全省范围内开展了省级畜禽核心育种场遴选工作。 经养殖场申请、市县…

解决SSH远程登录开饭板出现密码错误问题

输入“adduser Zhanggong回车”&#xff0c;使用adduser命令创建开发板用户名为Zhanggong 输入密码“123456” 输入密码“123456”

华清远见作业第四十一天——Qt(第三天)

思维导图&#xff1a; 编程 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如…