#include <stdio.h>
#include <stdlib.h>
typedef struct newlist
{
int data;
struct newlist *next;//next指针存储在当前的结构体中,此链表为单链表,且数据按从小到大插入
} onelist;
int insertone(onelist **old_flist,int a) //传过来的地址是赋值给old_flist的,
{ //不用管前边的俩个*,那个只代表类型,之所以用两个是因为首指针的地址不能修改
onelist *p =(onelist *)malloc(sizeof(onelist));
p->data = a;
p->next=NULL;
onelist * tmp,*q,*flist = * old_flist;//flist=*old_flist(原flist所存储的值,即main函数中flist的值 )
//即让flist指针指向把链表首指针所存储的值当作地址所对应的内存块,即把原首指针所存储的数据存入flist指针中
if(flist==NULL) //如果对flist进行修改,相当于修改flist指针的指向,但并没有修改首指针所存储的值
{
* old_flist=p;//修改的是main函数中首指针中所存储的值
}
else
{
for( q = flist; q!= NULL; q = q->next)
{
if(q->data>a) //如果链表的第一个数大于现在要插入的数据
{
*old_flist=p;
p->next=q;
bre
单向链表(二级指针实现)
最新推荐文章于 2025-02-22 19:35:45 发布
本文介绍如何使用二级指针在单链表中实现数据的插入和删除操作。通过`insertone`函数实现有序插入,通过`deleteone`函数实现按值删除节点。代码示例中,链表按从小到大顺序插入,提供了主函数`main`进行数据输入和输出展示。

&spm=1001.2101.3001.5002&articleId=8565805&d=1&t=3&u=d7d86a5af2c346f0ac8d6edf1ebfb7b5)
822

被折叠的 条评论
为什么被折叠?



