链表(1)

来源:互联网 发布:淘宝优惠劵 编辑:程序博客网 时间:2024/05/19 08:02
#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;    }}

0 0
原创粉丝点击