#include<stdio.h>
#include<stdlib.h>
struct NODE
{
int num;
struct NODE *pNext;
};
void createList( struct NODE **pp );
void delElement( struct NODE **pp );
void showList(struct NODE *pHead);
void addElement(struct NODE **pHead,int shu);
int main()
{
struct NODE *p = NULL;
addElement(&p,88);
addElement(&p,188);
addElement(&p,288);
addElement(&p,388);
showList(p);
return 0;
}
//添加
void addElement(struct NODE **pHead,int shu)
{
struct NODE *add;
struct NODE *ji = *pHead;
add = malloc(sizeof(struct NODE));
add->num = shu;
add->pNext = NULL;
//是要添加到第一个吗?
if(NULL == *pHead)
{
*pHead = add;
}
else
{
//找到最后一个节点
while( ji->pNext != NULL )
{
ji = ji->pNext;
}
//加上
ji->pNext = add;
}
}
//删除
void delElement( struct NODE **pp )
{
struct NODE *del;
struct NODE *ji = *pp;
//是只有一个节点吗?
if( NULL == (*pp)->pNext )
{
//记录要删除的节点
del = *pp;
//给指针赋值
*pp = (*pp)->pNext;
//释放
free(del);
}
else
{
//通过ji找到要删除节点的前一个节点
while( ji->pNext->pNext != NULL )
{
ji = ji->pNext;
}
//要删除的节点记录下来
del = ji->pNext;
//释放
free(del);
//让ji变成最后一个节点
ji->pNext = NULL;
}
}
void showList(struct NODE *pHead)
{
while(pHead != NULL)
{
printf("%d\n",pHead->num);
pHead = pHead->pNext;
}
}
void createList( struct NODE **pp )
{
struct NODE *u,
*w;
int i;
for(i=1;i<=5;i++)
{
u = malloc(sizeof(struct NODE));
u->num = i * 10;
u->pNext = NULL;
if(NULL == *pp)
{
*pp = u;
}
else
{
w->pNext = u;
}
w = u;
}
}
链表(1)
最新推荐文章于 2021-09-18 22:36:00 发布