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;
}
相关推荐
疯狂敲代码的老刘35 分钟前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
wengqidaifeng1 小时前
数据结构(三)栈和队列(上)栈:计算机世界的“叠叠乐”
c语言·数据结构·数据库·链表
VekiSon1 小时前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
BlackQid1 小时前
深入理解指针Part5——回调函数及应用
c语言
only-qi2 小时前
leetcode24两两交换链表中的节点 快慢指针实现
数据结构·算法·链表
日拱一卒——功不唐捐2 小时前
字符串匹配:暴力法和KMP算法(C语言)
c语言·算法
love530love2 小时前
Windows 下 GCC 编译器安装与排错实录
人工智能·windows·python·gcc·msys2·gtk·msys2 mingw 64
lcj25112 小时前
深入理解指针(4):qsort 函数 & 通过冒泡排序实现
c语言·数据结构·算法
猫头虎2 小时前
OpenClaw开源汉化发行版:介绍、下载、安装、配置教程
运维·windows·开源·aigc·ai编程·agi·csdn
luffy54592 小时前
windows下通过docker-desktop创建redis实例
windows·redis·docker·容器