数据结构day4作业

1.单链表任意位置删除

	datetype pos;
	printf("please input pos");
	scanf("%d",&pos);
	head=delete_all(head,pos);
	Output(head);
Linklist delete_all(Linklist head,datetype pos)
{
	if(pos<1||pos>length(head)||head==NULL)
		return head;
	if(head->next==NULL)
	{
		free(head);
		head=NULL;
	}
	else
	{
		if(pos==1)
		{
			head=delete_head(head);
			return head;
		}
		else
		{
		Linklist p=head;
		for(int i=1;i<pos-1;i++)
		{
			p=p->next;
		}
		Linklist q=p->next;
		p->next=q->next;

		free(q);
		p=NULL;
		return head;
		}
	}
}


2.单链表任意位置修改

	datetype pos;
	printf("please input pos");
	scanf("%d",&pos);
	printf("please input element");
	scanf("%d",&element);
	mod_all(head,pos,element);
	Output(head);
void mod_all(Linklist head,datetype pos,datetype element)
{
	Linklist p=head;
	if(head==NULL||pos<1||pos>length(head))
		return;
	for(int i=1;i<pos;i++)
	{
		p=p->next;
	}
	p->date=element;
}


3.单链表任意位置查找

	datetype pos;
	printf("please input pos");
	scanf("%d",&pos);
	find_all(head,pos);
	Output(head);
void find_all(Linklist head,datetype pos)
{
	Linklist p=head;
	if(head==NULL||pos<1||pos>length(head))
		return;
	for(int i=1;i<pos;i++)
	{
		p=p->next;
	}
	printf("%d\n",p->date);
}


4.单链表任意元素查找

	datetype key;
	printf("please input key");
	scanf("%d",&key);
	datetype index=find_ele(head,key);
	if(index==-1)
		printf("不存在\n");
	else{
		printf("在第%d的位置\n",index);
	}
	
int find_ele(Linklist head,datetype key)
{
	if(head==NULL)
		return -1;
	datetype count=0;
	Linklist p=head;
	for(int i=1;i<=length(head);i++)
	{
		count++;
		if(p->date==key)
			return count;
		p=p->next;
	}
	return -1;
}


5.单链表任意元素修改

	datetype key;
	printf("please input key");
	scanf("%d",&key);
	printf("please input element");
	scanf("%d",&element);
	mod_ele(head,key,element);
	Output(head);
int mod_ele(Linklist head,datetype key,datetype element)
{
	if(head==NULL)
		return -1;
	datetype pos=find_ele(head,key);
	Linklist p=head;
	for(int i=1;i<pos;i++){
		p=p->next;
	}
	p->date=element;
}

6.单链表任意元素删除

	datetype key;
	printf("please input key");
	scanf("%d",&key);
	delete_ele(head,key);
	Output(head);
int delete_ele(Linklist head,datetype key)
{
	if(head==NULL)
		return -1;
	Linklist p=head;
	datetype pos=find_ele(head,key);
	for(int i=1;i<pos-1;i++)
	{
		p=p->next;
	}
	Linklist q=p->next;
	p->next=q->next;
	free(q);
	q=NULL;
	return 0;
}


7.单链表逆置(面试)

	head=nizhi(head);
	Output(head);
Linklist nizhi(Linklist head)
{
	if(head==NULL)
		return head;
	Linklist p=head->next;
	head->next=NULL;
	while(p)
	{
		Linklist t=p;
		p=p->next;
		t->next=head;
		head=t;
	}
	return head;
}

8.单链表查找倒数第n个节点(面试)

	printf("please input n:");
	scanf("%d",&n);
	back_node(head,n);
datetype back_node(Linklist head, datetype n)
{
	if(head==NULL||n<1||n>length(head))
		return -1;
	datetype pos=length(head)-n+1;
	find_all(head,pos);
	return 0;

}

9.单链表排序(面试)

	datetype flag;
	printf("printf input flag:(0|1)");
	scanf("%d",&flag);
	if(flag==1|flag==0){
		sort_list(head,flag);
		Output(head);
	}
	else{
		printf("input error\n");
	}
datetype sort_list(Linklist head,datetype flag)
{
	if(head==NULL)
		return -1;
	Linklist p=head;
	if(flag==1){
	for(int i=0;i<length(head)-1;i++){
		p=head;
		for(int j=0;j<length(head)-i-1;j++){
			if(p->date > p->next->date){
				p->date ^= p->next->date;
				p->next->date ^= p->date;
				p->date ^= p->next->date;
			}
			p=p->next;
		}
	}
	}
	else{
	for(int i=0;i<length(head)-1;i++){
		p=head;
		for(int j=0;j<length(head)-i-1;j++){
			if(p->date < p->next->date){
				p->date ^= p->next->date;
				p->next->date ^= p->date;
				p->date ^= p->next->date;
			}
			p=p->next;
		}
	}
		
	}
	return 0;
}


10.单链表释放内存
 

 	head=free_list(head);
Linklist free_list(Linklist head)
{
	if(head==NULL)
		return head;
	Linklist p=head;
	while(head)
	{
		p=head;
		head=head->next;
		free(p);
	}
	p=NULL;
	return head;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具 名称: spring 命令执行 (CVE-2022-22947) 描述: Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本&#xff08;包含&#xff09;以前存在一处SpEL表达式注入漏洞&#xff0c;当攻击者可以访问A…

数据结构 / day06 作业

1.下面的代码打印在屏幕上的值是多少? /下面的代码打印在屏幕上的值是多少?#include "stdio.h"int compute_data(int arr[], unsigned int len) {long long int result 0;if(result len)return arr[0];resultcompute_data(arr,--len);printf("len%d, res…

基于单片机智能液位水位监测控制系统

**单片机设计介绍&#xff0c; 基于单片机智能液位水位监测控制系统 文章目录 一 概要特点应用场景工作原理实现方式 系统功能实时监测控制调节报警功能数据记录与分析 总结 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 ## 系统介绍 基于单片机…

【Python】yaml.safe_load()函数详解和示例

在Python中&#xff0c;PyYAML库提供了对YAML&#xff08;YAML Ain’t Markup Language&#xff09;文件的强大支持。YAML是一种直观的数据序列化标准&#xff0c;可以方便地存储和加载配置文件、数据日志等。 yaml.safe_load和yaml.load是Python的PyYAML库提供的两个函数&…

uniapp开发小程序使用axios进行网络请求 uniapp 小程序调试

前言 本篇最好放到项目的【README.md】文件中,方便每次发布的时候检查纠错,毕竟好记性不如烂笔头。而且其他开发者帮忙修改bug、发布新版本的时候,只需要根据这个事项就能实现整个流程的提审发布,提高效率。 1、微信小程序配置 1.1、检查APPID是否正确 测试:wx--------…

函数学习 PTA 1使用函数输出一个整数的逆序数;3判断满足条件的三位数;5使用函数求余弦函数的近似值

其实一共有五道题&#xff0c;但那两道实在太过简单&#xff0c;也不好意思打出来给大家看&#xff0c;那么这篇博客&#xff0c;就让我一次性写三道题吧&#xff01;也当是个小总结&#xff0c;睡前深思。 6-1 使用函数输出一个整数的逆序数 本题要求实现一个求整数的逆序数的…

vuepress-----6、时间更新

# 6、时间更新 基于Git提交时间修改文字时间格式 moment # 最后更新时间 # 时间格式修改 下载库文件 yarn add momentconst moment require(moment); moment.locale(zh-cn)module.exports {themeConfig: {lastUpdated: 更新时间,},plugins: [[vuepress/last-updated,{trans…

智能优化算法应用:基于群居蜘蛛算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于群居蜘蛛算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于群居蜘蛛算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.群居蜘蛛算法4.实验参数设定5.算法结果6.参考…

【Vue】【uni-app】实现工单列表项详情页面

这次主要实现的是一个工单详情页面 从工单列表项中点击详情 跳转到工单详情页面&#xff0c;这个详情页面就是这次我们要实现的页面&#xff0c;并可以通过点击这个关闭按钮返回到工单列表页面 首先是在我们原有的工单列表页面的按钮增加一个点击跳转 <button size"m…

微服务API网关Spring Cloud Gateway实战

概述 微服务网关是为了给不同的微服务提供统一的前置功能&#xff1b;网关服务可以配置集群&#xff0c;以承载更多的流量&#xff1b;负载均衡与网关互相成就&#xff0c;一般使用负载均衡&#xff08;例如 nginx&#xff09;作为总入口&#xff0c;然后将流量分发到多个网关…

504. 七进制数

这篇文章会收录到 : 算法通关第十三关-青铜挑战数学基础问题-CSDN博客 七进制数 描述 : 给定一个整数 num&#xff0c;将其转化为 7 进制&#xff0c;并以字符串形式输出。 题目 : LeetCode 504. 七进制数 : 504. 七进制数 分析 : 我们先通过二进制想一下7进制数的变化特…

C++二分查找算法:包含每个查询的最小区间

题目 给你一个二维整数数组 intervals &#xff0c;其中 intervals[i] [lefti, righti] 表示第 i 个区间开始于 lefti 、结束于 righti&#xff08;包含两侧取值&#xff0c;闭区间&#xff09;。区间的 长度 定义为区间中包含的整数数目&#xff0c;更正式地表达是 righti -…

<蓝桥杯软件赛>零基础备赛20周--第8周第1讲--十大排序

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

【C语言】把歌词里的播放时间跟歌词提取出来

一&#xff0c;介绍 给到一个字符串&#xff0c;里面包含了时间&#xff08;唱该歌词的时间以及该歌词&#xff09;例如“[02:16.33][04:11.44][05:11.44]我想大声宣布对你依依不舍”&#xff0c;如何把两者都给打印出来呢&#xff1f;下面给出解释 二&#xff0c;代码 #incl…

【Openstack Train安装】四、MariaDB/RabbitMQ 安装

本章介绍了MariaDB/RabbitMQ的安装步骤&#xff0c;MariaDB/RabbitMQ仅需要在控制节点安装。 在安装MariaDB/RabbitMQ前&#xff0c;请确保您按照以下教程进行了相关配置&#xff1a; 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Opensta…

UI自动化测试的正确姿势 —— Airtest设备连接API详解第一篇

一、背景 Airtest作为一款优秀的自动化测试工具&#xff0c;有着强大的API功能&#xff0c;处理日常自动化测试过程中需要的各类操作。今天就给大家逐一介绍关于设备连接和常用API部分&#xff0c;结合自动化测试中的各类需求&#xff0c;看看如何通过使用Airtest来快速实现。…

记录创建粒子的轻量级JavaScript库——particles.js(可用于登录等背景显示)

文章目录 前言一、下载particles.js二、引入particles.js并使用三、配置数据说明如有启发&#xff0c;可点赞收藏哟~ 前言 本文记录使用创建粒子的轻量级JavaScript库 particles.js 可用于登录等背景显示 一、下载particles.js 先下载particles.js库&#xff0c;放在项目libs…

【古月居《ros入门21讲》学习笔记】08_发布者Publisher的编程实现

目录 说明&#xff1a; 1. 话题模型 图示 说明 2. 实现过程&#xff08;C&#xff09; 创建功能包 创建发布者代码&#xff08;C&#xff09; 配置发布者代码编译规则 编译并运行 编译 运行 3. 实现过程&#xff08;Python&#xff09; 创建发布者代码&#xff08;…

7Docker搭建es和kibana

一、安装es 1.拉取镜像 sudo docker pull elasticsearch:7.12.0 elasticsearch:7.12.0:我安装的版本是7.12.0&#xff0c;可以根据实际的情况安装 创建docker容器挂在的目录&#xff1a; sudo mkdir -p /opt/elasticsearch/config sudo mkdir -p /opt/elasticsearch/data s…

算法通关村第一关—青铜挑战—用Java基本实现各种链表操作

文章目录 第一关—链表【青铜挑战】1.1 单链表的概念1.2 链表的相关概念1.3 创建链表 - Java实现1.4 链表的增删改查1.4.1 遍历单链表 - 求单链表长度1.4.2 链表插入 - 三种位置插入&#xff08;1&#xff09;在链表的表头插入&#xff08;2&#xff09;在链表的中间插入&#…