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;
}
相关推荐
暴力求解5 小时前
C语言---动态内存管理、柔性数组
c语言·开发语言·算法
whoarethenext5 小时前
C/C++ OpenCV 矩阵运算
c语言·c++·opencv·矩阵运算
@老蝴5 小时前
C语言 — 动态内存管理
android·c语言·开发语言
凤年徐6 小时前
【数据结构初阶】顺序表的应用
c语言·开发语言·数据结构·c++·笔记·算法·顺序表
love530love6 小时前
Windows 下部署 SUNA 项目:虚拟环境尝试与最终方案
前端·人工智能·windows·后端·docker·rust·开源
BIBI20498 小时前
Windows 下彻底删除 VsCode
windows·vscode
小垣8 小时前
Windows版PostgreSQL 安装 vector 扩展
windows·postgresql·pgvector·spring.ai·vectorstore
杰哥技术分享9 小时前
Windows清理之后,资源管理器卡顿-解决方法
windows
C_Liu_9 小时前
C语言:字符函数和字符串函数
c语言·开发语言
扛枪的书生10 小时前
AD 横向移动-哈希传递攻击
windows·渗透·kali·域渗透