链表添加

链表添加,我个人认为链表添加要了解二级指针和结构体,这个是至关重要的!!!!

二级指针:
int a = 10;
int *p =&a;
int **pp = &p;
*pp是指向p的值, pp == &p; *pp == p == &a; **p == *p ==a;

List **pphead == &phead ; pphead == &phead ; *pphead == phead; **pphead == *phead;

*pphead == phead这个是非常关键,在链表中,能改变头尾指针的变化,并且将实参传递给行参

#include <stdio.h>
#include <stdlib.h>

typedef struct NODE
{
	int id;
	char *name;
	char *tel;
	struct NODE *pNext;
}List;

List *GetNode(int id,char *name,char *tel);

void *AddNode(List **pphead,List **ppend,List *ptemp);
int main()
{
	List *phead = NULL;
	List *pend = NULL;
	AddNode(&phead,&pend,GetNode(1,"11","111"));
	AddNode(&phead,&pend,GetNode(2,"22","222"));
	AddNode(&phead,&pend,GetNode(3,"33","333"));

	return 0;
}

List *GetNode(int id,char *name,char *tel)
{
	List *ptemp = (List*)malloc(sizeof(List));
	ptemp -> id = id;
	ptemp -> name = name;
	ptemp -> tel = tel;
	ptemp -> pNext = NULL;
	return ptemp;

}

void *AddNode(List **pphead,List **ppend,List *ptemp) //List **pphead ==&phead    pphead == &phead     *pphead ==phead      **pphead ==*phead
{
    if(*pphead == NULL)
	{
		*pphead = ptemp;
	}
	else
	{
		(*ppend) -> pNext = ptemp;
	}
	*ppend = ptemp;

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值