C语言:链表添加

链表的添加的具体方法如下:

先判断链表是否有节点,

若没有, 头指针指向新来的节点,尾指针指向新来的节点。

若有, 尾节点的下一个指向新来的节点,尾指针指向新来的节点。

cpp 复制代码
#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
	int id;
	char* name;
	struct node* pnext;
}list;

list* getnode(int id, char* name)
{
	list* ptemp = malloc(sizeof(list));
	ptemp->id = id;
	ptemp->name = name;
	ptemp->pnext = NULL;
	return ptemp;
}

void addnode(list** pphead, list** ppend, list* pnode)
{
	if (NULL == *pphead)
	{
		*pphead = pnode;
		*ppend = pnode;
	}
	else
	{
		(*ppend)->pnext = pnode;
		*ppend = pnode;
	}
}

int main()
{
	list* phead = NULL;
	list* pend = NULL;

	addnode(&phead, &pend, getnode(1, "aa"));
	addnode(&phead, &pend, getnode(2, "bb"));
	addnode(&phead, &pend, getnode(3, "cc"));
	addnode(&phead, &pend, getnode(4, "dd"));

	while (phead != NULL)
	{
		printf("%d %s\n", phead->id, phead->name);
		phead = phead->pnext;
	}

	return 0;
}
相关推荐
m0_748229994 小时前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习
踩坑记录4 小时前
leetcode hot100 环形链表 easy 快慢指针
leetcode·链表
你怎么知道我是队长5 小时前
C语言---排序算法4---希尔排序法
c语言·算法·排序算法
m0_748229995 小时前
C与C#:编程语言的核心差异解析
c语言·开发语言·c#
进击的小头5 小时前
一阶IIR低通滤波器:从原理到嵌入式实战
c语言·算法
wotaifuzao5 小时前
STM32+FreeRTOS 长期可维护架构设计(事件驱动篇)-- 告别“屎山”代码
c语言·stm32·嵌入式硬件·freertos·状态机·事件驱动·嵌入式架构
m0_748229995 小时前
Laravel7.x核心特性全解析
c语言·数据库·c#
kklovecode6 小时前
C++对C语言的增强
c语言·开发语言·c++
m0_748248656 小时前
C语言向C++过渡
c语言·c++·算法
比奇堡鱼贩6 小时前
python第二次作业--函数
linux·运维·windows