#include<stdio.h>
#include<stdlib.h>
//节点结构体
struct Node
{
int a;
struct Node* pNext;
};
//链表头尾指针
struct Node* g_pHead = NULL;
struct Node* g_pEnd = NULL;
//创建链表,在链表中增加一个数据(尾添加)
void AddNodeToList(int a);
//清空链表
void Freelist();
int main(void)
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
g_pHead;
int i=0;
for(i=0;i<10;i++)
{
AddNodeToList(a[i]);
}
void Freelist();
for(i=0;i<10;i++)
{
AddNodeToList(a[i]);
}
system("pause");
return 0;
}
//清空链表
void Freelist()
{
struct Node *pTemp = g_pHead;
while(pTemp!=NULL)
{
struct Node* pt = pTemp;
pTemp = pTemp->pNext;
free(pt);
}
//头尾清空
g_pHead = NULL;
g_pEnd = NULL;
}
//创建链表,在链表中增加一个数据(尾添加)
void AddNodeToList(int a)
{
//创建一个节点
struct Node* pTemp = (struct Node*)malloc(sizeof(struct Node));
//节点数据进行赋值
pTemp->a = a;
pTemp->pNext = NULL;
//链接
if(NULL == g_pHead||NULL == g_pEnd)
{
//链表没有东西,空链表,既是头又是尾
g_pHead = pTemp;
g_pEnd = pTemp;
}
else
{
//不为空 往尾巴上添加
g_pEnd->pNext = pTemp;
//尾巴一直指向最后一个节点
g_pEnd = pTemp;
}
}
轻松学会C语言链表之 “尾添加” 和 “清空链表”
最新推荐文章于 2023-12-04 14:19:54 发布