【数据结构/Data Structure】链表(一):在链表头部插入一个节点

一、链表的C实现

struct Node{
	int data;            //当链表中存储的数据类型不同时,data的定义类型也不同
	struct Node* next;
};

二、在链表头部插入一个节点

        1、插入功能实现的逻辑

struct Node* head = NULL;

        当我们创建一个新的链表时,我们首先创建的是一个节点的指针变量 head ,它代表了链表的头,也即第一个节点。此时链表中还没有添加任何元素,所以 head = NULL。

struct Node* Insert(struct Node* head,int x) {
	struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
	temp->data = x;
	temp->next = head;
	head = temp;
	return head;
}

        在这里定义了一个Insert()函数,传入头节点的地址参数,以及要插入的元素值,由于我们是从链表头插入新的元素,所以每次插入,链表头的地址会不同,函数返回这个新的链表头。

       当链表为空时,Insert()函数首先创建在heap上创建了一个temp节点,并且将要插入的数据存入temp->data。由于插入的是链表的第一个结点恰好也是最后一个,此时head = NULL,temp->next = head,也即temp->next = NULL。最后让head = temp, return head。我们成功在heap上创建了第一个节点,并且用head记录下了它。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值