C 链表 结构体指针原理

以下都是个人笔记,如果错误 请务必提醒我 以免误导后人,谢谢!
链表与数组的不同
:数组是在内存空间申请一连串的地址 来存储同一类型的数据
如果使用的不好会造成内存空间利用率地下
好处方便使用 查询.遍历数组速度较快
:链表是通过指针将一个一个节点(node)链接,形成一个数据集合
优点是链接一个个节点而不是需要一连串的内存地址
但查询,遍历速度较慢

链表的每一个节点都是有结构体指针组成的
例如

typedef struct _node  //typedef int A 效果:自定义数据类型名字 将数int名字定义为A 
{
	int data           //数据域 名字和类型可自己改变
	struct _node *next // 指针域 指向下一个节点
}Node;	//将struct _node 定义为Node 

上面就是一个标准的单链表数据节点
头指针-头结点[data | next]-[节点]
头指针就是个指针 他指向头结点
这样子头指针就相当于是头结点
头结点的数据域存储数据 ,指针域指向下一个节点的地址
如此循环就链接起来

typedef struct _node 
{
	int data           //数据域 名字和类型可自己改变
	struct _node *next // 指针域 指向下一个节点
}Node

Node *Create(int data)
{		//创建节点
	Node *node = NULL; //先给一个NULL 暂时不太清楚
	node = (Node *)malloc(sizeof(Node)) //给node变量一个Node*类型 大小是Node类型字节的空间
	memset(node,o,sizoef(Node) //清理内存空间里面的垃圾
	node->data = data; //将实际参数传给函数 存入数据域中
	node->next = NULL; //只创建节点 
	printf("%d",node->data);
	printf("%d",node->next);
	
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值