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;
}
相关推荐
EdwardYange6 分钟前
LeetCode 83 :删除排链表中的重复元素
数据结构·算法·leetcode·链表
一入程序无退路35 分钟前
c语言传参数路径太长,导致无法获取参数
linux·c语言·数据库
lili-felicity1 小时前
指针与数组:深入C语言的内存操作艺术
c语言·开发语言·数据结构·算法·青少年编程·c#
无名之逆2 小时前
lombok-macros
开发语言·windows·后端·算法·面试·rust·大学期末
逊嘘3 小时前
【Java数据结构】链表相关的算法
java·数据结构·链表
牛奔5 小时前
windows nvm 切换node版本后,npm找不到
前端·windows·npm·node.js
小奥超人10 小时前
Excel粘贴复制不完整的原因以及解决方法
windows·经验分享·microsoft·excel·办公技巧
就爱学编程12 小时前
重生之我在异世界学编程之C语言:数据在内存中的存储篇(下)
java·服务器·c语言
落羽的落羽12 小时前
【落羽的落羽 C语言篇】动态内存管理·下
c语言
叫我阿呆就好了14 小时前
C 实现植物大战僵尸(一)
c语言·开发语言