C语言 链表(一) 创建一个简单的链表

C语言 创建一个简单的链表

下载链接

/*
->首先编写头文件MyListDemo.h,我们定义了一个链表的结构体
->里面简单封装了链表自身的属性(存放的数据,指向下一个链表的指针)
*/
#include <stdio.h>
#include <malloc.h>

typedef struct MyList
{
	int m_num;           //链表中需要存放的数据
	MyList* m_next;      //指向链表
}MyList;

//定义了两个功能函数
MyList** AddNode(MyList** myList, int data);
//MyList* MyListInsert2(MyList* myList, int data);
void Show(MyList* head);

完成上一步后,在c文件中,我们开始进行功能函数的编写。

#include "MyListDemo.h"

int main()
{

	//定义一个链表变量,作为链表头的,因为后面若遍历到表尾需要根据这位置遍历回表头
	MyList* head = NULL;
	//再定义一个二级指针链表变量,用来更新保存改动后新的链表节点位置
	MyList** move = &head;

	for (int i = 0; i < 10; i++)
	{
		move = AddNode(move, i);
	}

	Show(head);
}

//增添一个节点
MyList** AddNode(MyList** myList2, int data)
{
	(*myList2) = (MyList*)malloc(sizeof(MyList));//为当前节点申请空间
	(*myList2)->m_num = data;//数据赋值
	(*myList2)->m_next = NULL;//若后续不继续申请空间,此处为结尾
	
    //关键是理解这步,从当前节点移动到下个节点,那么后续的"当前结点"就是结点next了
	return &(*myList2)->m_next;
}

//展示数据
void Show(MyList* head)
{
	//当前不为空的话,就一直向后遍历数据
	while (head != NULL)
	{
		printf("num:%d\r\n", head->m_num);
		//移动到下一个结点
		head = head->m_next;
	}
}

最后验证功能,遍历成功

在这里插入图片描述
C语言 链表(二) 对链表进行增删改查的操作

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ou.cs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值