栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言链表结点的插入

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言链表结点的插入

#include
struct student {                                                      //建立结构体变量struct student
	long num;
	float score;
	struct student *next
};
int n;
struct student *insert(struct student *head, struct student *stud)    //函数的参数是head和stud,head是为了指向表头,
                                                                      //stud目的是将待插入结点的地址从实参传给stud
{
	struct student *p1;
	struct student *p2;
	struct student *p0;                                               //定义三个结构体变量,其中p0为带插入点的地址
	p1 = head;
	p0 = stud;
	if(head==NULL){                                                   //原链表为空,即原来无结点,只需让head直接等于p0
		head = p0;                                                    //并且让p0的next指向空地址,即只含一个结点
		p0->next = NULL;
	}
	else {                                                            //若链表不为空,则分为两种情况
		while ((p0->num > p1->num) && p1->next != NULL)               //其中一种情况是插入的结点既不在第一个,也不在最后一个,即插入的点在中间
		{                                                             //让p2等于p1,且让p1指向下一个结点
			p2 = p1;                                                  //一直找到p0小于等于p1为止,即p0需在p1的前面
			p1 = p1->next;
		}
		if (p0->num <= p1->num) {                                     //当结点p1前面的情况
			if(p1==head) {                                            //判断p1是否是表头,即判断p0是否要插在第一个表头的位置
				head == p0;                                           //若是,直接让head=p0
				p0->next = p1;
			}
			else {                                                    //p1不是表头,则一定做了while循环,就会有p2的值
				p2->next = p0;                                        //则让p0插在p2和p1之间
				p0->next = p1;
			}
		}
		else {                                                        //插入的结点在表尾的情况
			p1->next = p0;                                            //则让p1的next指向p0,p0后面没有结点了,即next指向空地址
			p0->next = NULL;
		}
		n = n + 1;                                                    //结点数加1
		return(head);
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/864369.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号