链表 删除链表中任意位置的节点

 

//删除链表中任意位置的节点
#include<stdio.h>
#include <stdlib.h> 
struct Node {
	int data;
	struct Node* next;
};
struct Node* head;
void Insert(int x){
	Node* temp=(Node*)malloc(sizeof(struct Node));//创建节点
	/*malloc返回指向起始地址的指针 
	因为malloc返回一个void指针,所以使用(Node*)强制转换  */ 

	//temp是指针变量 我们解引用指针变量以修改此特定节点上的值 	
	temp->data =x;
	temp->next =head;//涵盖了 链表为空和非空 这两种情况 
	head = temp; 
}
void Print(){
	struct Node* temp=head;
	/*创建一个局部变量 名为temp的指向Node的指针 
	为什么要用局部变量  因为我们不能修改链表表头
	否则我们会失去对第一个节点的引用   */
	printf("list is:");
	//遍历链表的循环 
	while(temp !=NULL){//temp非空时 
		printf(" %d",temp->data ); //每次打印该节点的值 
		temp=temp->next ;//修改局部变量的地址  转到下一个节点 
	} 
	printf("\n"); 
}
void Delete(int n){
	struct Node* temp1=head;
	if(n==1){
		head=temp1->next;
		//head指向第二个节点 temp1仍指向第一个节点
		
		free(temp1); //链接已经修复  释放第一个节点 
		return; 
	}
	/*以下情况适用于拥有第n-1个节点的时候,
	即使没有第n+1个节点,如果第n+1个位置是NULL也适用*/ 
				//创建一个指向节点的临时变量 将其指向head 
				for(int i=0;i<n-2;i++)//到达第n-1个节点 
				temp1=temp1->next;//temp1指向第n-1个节点 
				
				//创建一个变量以指向第n个节点 将其命名为temp2 
				struct Node* temp2=temp1->next;//第n个节点
				
				//调整链接部分 第n-1个节点的地址指向第n+1个节点
				temp1->next=temp2->next;//第n+1个节点
				//此时temp2存储第n个节点,引用第n个节点
				
				free(temp2);//free函数用来释放通过malloc分配的任何内存
				/*如果我们用C++编程时使用new运算符来分配内存
				就写:delete temp2   */
}
int main(){
	head = NULL;
	Insert(2);
	Insert(4);
	Insert(6);
	Insert(5);//lise:2 4 6 5
	Print();
	int n;
	printf("enter a position\n");
	scanf("%d",&n);
	Delete(n);
	Print();
}

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

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

相关文章

node 之 fs文件系统模块

1.什么是fs文件系统模块 fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对文件的操作需求 fs.readFile(),用来读取制定文件中的内容 fs.writeFile(),用来向制定的文件中写入内容 如果要在JavaScript代码中&#xff0c;使…

洛谷P8627 [蓝桥杯 2015 省 A] 饮料换购

#先看题目 题目描述 乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料&#xff0c;凭 3 个瓶盖可以再换一瓶 C 型饮料&#xff0c;并且可以一直循环下去(但不允许暂借或赊账)。 请你计算一下&#xff0c;如果小明不浪费瓶盖&#xff0c;尽量地参加活动&#xff0c;那…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

Vue+SpringBoot打造社区买菜系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1.2 菜品分类模块2.1.3 菜品档案模块2.1.4 菜品订单模块2.1.5 菜品收藏模块2.1.6 收货地址模块 2.2 可行性分析2.3 用例分析2.4 实体类设计2.4.1 菜品分类模块2.4.2 菜品档案模块2.4.3…

Spring Boot与HikariCP:性能卓越的数据库连接池

点击下载《Spring Boot与HikariCP&#xff1a;性能卓越的数据库连接池》 1. 前言 本文将详细介绍Spring Boot中如何使用HikariCP作为数据库连接池&#xff0c;包括其工作原理、优势分析、配置步骤以及代码示例。通过本文&#xff0c;读者将能够轻松集成HikariCP到Spring Boot…

nginx-------------(四) 变量 日志分割 自定义图标 证书

一、高级配置 1 .1网页的状态页 基于nginx 模块 ngx_http_stub_status_module 实现&#xff0c;在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module&#xff0c;否则配置完成之后监测会是提示语法错误注意: 状态页显示的是整个服务器的状态,而非虚拟主机…

Linux运维-DHCP服务器

DHCP服务器的配置与管理 项目场景 学校各部门共有180台电脑&#xff0c;除了计算机学院的教师会配置电脑的网络连接&#xff0c;其他部门的老师和工作人员均不会&#xff0c;为了提高网络的管理效率&#xff0c;技术人员决定配置一台DHCP服务器&#xff0c;来提供动态的IP地址…

js---回溯算法

在 JavaScript 中实现回溯算法通常需要使用递归来进行搜索。回溯算法通常用于解决组合优化问题、排列组合问题、棋盘类游戏等。回溯算法一般是一个for加递归,for循环横向遍历,递归纵向遍历—以上是回溯算法的基本框架 1、回溯算法求数组所有子集 2、回溯算法求全排列

电商+支付双系统项目------项目部署到服务器

我已经把这个项目的所有模块都做好了。那么&#xff0c;现在我们要做的就是将这个项目部署发布了。其实关于部署发布网上有很多的文章都会教&#xff0c;我就不写哪些很具体的步骤了&#xff0c;我就简单的总结一下怎么部署这个项目&#xff0c;让大家对项目部署有一个整体的认…

【rust】9、reqwest 调用 http

文章目录 一、client1.1 post reqwest 实现的 http server 和 client 用 https://github.com/seanmonstar/reqwest cargo add reqwest -F json cargo add tokio -F full一、client 1.1 post async fn http_post<T: Serialize>(addr: String, body: T) -> Result<…

【centos】【vsftpd】FTP本地用户登录配置

目录 ftp与sftp安装vsftpd和ftp本地用户登录-不限制访问目录本地用户登录-限制访问目录有可能影响连接的问题pam认证selinux策略被动模式防火墙ipv4和ipv6 报错1、 530 Login incorrect2、500 OOPS: vsftpd: refusing to run with writable root inside chroot()3、227 Enterin…

[C++] 如何操作ini文件

什么是ini文件&#xff1f; INI文件&#xff08;.ini&#xff09;是一种常见的配置文件格式&#xff0c;用于存储程序、操作系统或设备驱动程序的配置信息。INI是"Initialization"的缩写&#xff0c;指的是初始化。INI文件通常是纯文本文件&#xff0c;在Windows操作…

《TCP/IP详解 卷一》第3章 链路层

目录 3.1 引言 3.2 以太网 3.3 全双工 省点 自动协商 流量控制 3.4 网桥和交换机 3.5 WiFi 3.6 PPP协议 3.6.1 PPP协议流程 3.7 环回 3.8 MTU和路径MTU 3.9 隧道基础 3.9.1 GRE 3.9.2 PPTP 3.9.3 L2TP 3.10 与链路层相关的攻击 3.11 总结 3.1 引言 城域网&…

如何将负压控制信号转换为正电压

多电源域系统中&#xff0c;时常会出现负电压&#xff0c;比如双电源运放&#xff0c;比如射频功率放大器的栅极偏置电压等。以射频功率放大器的栅极偏置电压和VDD上电为例&#xff0c;是要考虑上电顺序的&#xff0c;参见博文《功放的上电顺序》https://blog.csdn.net/mzldxf/…

什么是nginx 、安装nginx、nginx调优

一、 什么是nginx 1.1 nginx的概念 一款高新能、轻量级Web服务软件系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000&#xff5e;50 000个并发请求。 1.2 nginx模块与作用 核心模块&#xff1a;是 Nginx 服务器正常运行必不可少的模块&#xff0c;提供错…

设备树详解

设备树(Device Tree)基本概念及作用 设备树(Device Tree)基本概念 在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的…

leet hot 100-1 两数之和

两数之和 原题链接思路代码 原题链接 leet hot 100-1 1. 两数之和 思路 可以把当前数字放到容器里面去 当我们遍历一个新的数字的时候 减一下与目标值的差 然后得到的结果在容器里面查看是否存在 时间复杂度O(n) 空间复杂度(n) 代码 class Solution { public:vector<…

修复 Android 手机陷入恢复模式的 5 种方法

您的手机卡在 Android Recovery 模式且无法退出此模式&#xff1f;无论您按什么按钮组合&#xff0c;甚至在取出并重新插入电池后重新启动手机&#xff0c;手机都会启动回到恢复模式吗&#xff1f; Android卡在recovery模式的情况并不罕见&#xff0c;各种品牌的Android手机都…

EasyRecovery易恢复14好不好用?恢复速度怎么样

EasyRecovery易恢复14的恢复速度相对较快&#xff0c;但具体的恢复速度取决于多个因素。以下是一些影响恢复速度的主要因素&#xff1a; 存储设备性能&#xff1a;恢复速度受到存储设备性能的影响。如果存储设备&#xff08;如硬盘、U盘等&#xff09;的读写速度较慢&#xff…

nginx搭建直播rtmp推流,httpflv拉流环境

背景 工作中发现挺多直播CDN在实现httpflv拉流时都没有使用http chunk编码&#xff0c;而是直接使用no-content-length的做法。所以想自己搭建一个直播CDN支持 http chunk编码。 环境搭建 系统环境 Ubuntu 18.04.4 LTS 软件 nginx-1.18.0 nginx扩展模块 nginx-http-flv-mo…
最新文章