博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表中插入一个节点的三种情况
阅读量:6520 次
发布时间:2019-06-24

本文共 1349 字,大约阅读时间需要 4 分钟。

在链表中插入一个元素能够分为三种情况:

1、在节点的时候

2、在链表中间的任何位置

3、在链表的最后位置,也能够觉得这样的情况为追加(这个就留到追加的时候来实现)

以下是代码的实现

SN *Insert_S_Node(				SN *head				)										/* 传入的參数是被插入链表中的头指针 */   {	SN *Insert_Node=NULL, *Dest_Node = NULL;			/* Insert_Node是将要做成的新链表中的节点  Dest_Node是要插入的节点*/	INT32 OSM = 1, i32i = 0, flag = 0; 	Dest_Node = ( SN* )malloc( sizeof (SN) );	Insert_Node = head;										OSM = OSM_Printf("输入要插入的位置: ");	Dest_Node->Sensor_rating = scanf_for();					 /* 输入插入的序号 */	i32i = getchar();										/* 消除回车换行的影响 */	if ( 0 > Dest_Node->Sensor_rating)						/* 防止输入了小于0的数 */	{		OSM = OSM_Printf("请输入大于零的数\n");	}	else	{		OSM = OSM_Printf("输入要插入的元素:");						/* 插入的元素 */		if ( NULL != Dest_Node->Sensor_title )		{			gets(Dest_Node->Sensor_title);					/* 输入插入的元素 */		}		/* 遍历到要插入的位置 */		while (Insert_Node->next != NULL)		{			Insert_Node = Insert_Node->next;			if ( 0 == flag )			{				if( Dest_Node->Sensor_rating == Insert_Node->next->Sensor_rating)			/* 推断是否相等 */				{					Dest_Node->next = Insert_Node->next;									/* 開始运行q->next = p->next q->next = p */					Insert_Node->next = Dest_Node;					flag = 1;																/* 设置标志 */					Insert_Node = Dest_Node->next;										}			}			if ( 1 == flag )			{				Insert_Node->Sensor_rating++;			}		}	}			return head;}
这在中间插入是能够实现的

可是实如今头节点的时候插入的时候出现了问题

这个问题是没有考虑到插入的是头节点的情况

转载于:https://www.cnblogs.com/gavanwanggw/p/6698714.html

你可能感兴趣的文章
JVM分代垃圾回收策略的基础概念
查看>>
《交互式程序设计 第2版》一3.5 捕获简单用户交互行为
查看>>
5G技术的5大猜想
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>
别随便安装 Pokemon GO被曝藏恶意后门
查看>>
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>
FLIF:自由的无损图像格式
查看>>
Google开源Inception-ResNet-v2,提升图像分类水准
查看>>
Opera 出售细节曝光:昆仑出资1.68亿美元
查看>>
CentOS 5.3 下快速安装配置 PPTP ××× 服务器
查看>>
产品经理学习总结之技术和设计篇
查看>>
23种设计模式(15):备忘录模式
查看>>
java基础学习总结——IO流
查看>>
iOS获取APP ipa 包以及资源文件
查看>>
CentOS 7 关闭启动防火墙
查看>>
Vue-选项卡切换
查看>>
linux网络命令
查看>>
nodejs ejs 请求路径和静态资源文件路径
查看>>
4.1 State Snapshot Transfer
查看>>