链表c的经典实现(一)
//本书代码来思想自于创客诚品的<<C语言从入门到精通>>
//但我对原书代码做了较大的改动;
// 个人认为算法与数据结构是一个程序员的内功,欲成为第一流的高手必须苦练内功
// 欲研究数据结构,必须写C
#include<stdio.h>
#include<stdlib.h>
#define N 10
//定义一个结构体,这里有一点难以理解,next 采用了嵌套定义
// struct list
typedef struct list
{
int data;
struct list *next;
}SLIST;
main()
{
SLIST *head ,*p,*q;
int x;
//这是链表的第一个节点
head=p=(SLIST *)malloc(sizeof(SLIST));
scanf("%d",&x);
while(x>0)
{
q=(SLIST *)malloc(sizeof(SLIST));
q->data=x;
p->next=q;
p=q;
scanf("%d",&x);
//q=(SLIST *)malloc(sizeof(SLIST));
}
//p=head->next; //下面为打印一个链表
p=head->next; //下面为打印一个链表
while(p!=NULL)
{
printf("%d\n",p->data);//输出当前节点的数据
q=p; //删除当前节点
p=p->next;
free(q); //释放删除的
}
return ;
}
luogan@luogan-Lenovo-G470:~/lg/temp/实用数据结构$ ./a.out
1
2
3
-9
1
2
3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)