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;
}
相关推荐
lucky1_1star2 小时前
FX-std::list
数据结构·windows·list
※※冰馨※※2 小时前
【Python】PyQt5在PyCharm的配置与应用
开发语言·windows·python
小呀小萝卜儿3 小时前
2025-03-14 学习记录--C/C++-PTA 习题2-1 求整数均值
c语言·学习
DjangoJason4 小时前
C++ list类
c++·windows·list
代码AC不AC4 小时前
【C语言】编译和链接详解
c语言·开发语言·链接·编译·深度解析
knightkkzboy5 小时前
《C语言中“输入魔法师”:scanf函数的奥秘与技巧》
c语言·开发语言
誓约酱9 小时前
(每日一题) 力扣 179 最大数
c语言·c++·算法·leetcode·职场和发展
南玖yy10 小时前
数据结构完全指南:C语言实现与核心原理剖析
c语言·开发语言·数据结构
笨手笨脚の10 小时前
Redis 源码分析-内部数据结构 ziplist
数据结构·数据库·redis·链表·ziplist
爱康代码12 小时前
c语言经典基础编程题
c语言·开发语言