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;
}
相关推荐
diegoXie1 小时前
【Python】 中的 * 与 **:Packing 与 Unpacking
开发语言·windows·python
鹿角片ljp2 小时前
力扣140.快慢指针法求解链表倒数第K个节点
算法·leetcode·链表
List<String> error_P3 小时前
数据结构:链表-单向链表篇
算法·链表
佳航张4 小时前
C语言经典100题---例003--- 完全平方数
c语言
Hominid⁺5 小时前
深度解析:C 语言的 8 个翻译阶段与 GCC 编译全流程
c语言·开发语言
缘三水7 小时前
【C语言】15.指针(5)
c语言·开发语言·指针·语法
武藤一雄7 小时前
C#:Linq大赏
windows·后端·microsoft·c#·.net·.netcore·linq
ULTRA??8 小时前
C++数据结构的链表实现模拟
c++·链表
灰灰勇闯IT8 小时前
C语言实战:字符串元音字母提取器的实现与优化
c语言·开发语言
AI云原生9 小时前
openEuler软件生态体验——从桌面到服务器的全方位探索
运维·服务器·windows·macos·docker·云计算·腾讯云