#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=(List *)malloc(sizeof(List));
pTemp->id=id;
pTemp->name=name;
pTemp->pNext=NULL;
return pTemp;
}
//ppHead==&pHead *ppHead==*&pHead==pHead **ppHead==*pHead
void AddNode(List **ppHead,List **ppEnd,List *pNode)
{
//判断链表中是否有节点
if(NULL==*ppHead)
{
//没有
//头指针存新来节点地址
*ppHead=pNode;
}
else
{
//有
//尾节点pNext指针存新来节点地址
(*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,pEnd->name);
pHead=pHead->pNext;
}
return 0;
}
C语言实现“链表添加”
最新推荐文章于 2024-01-27 17:21:37 发布