链表创建添加删除

来源:互联网 发布:网络春晚2013 编辑:程序博客网 时间:2024/05/21 18:50
#include<stdio.h>#include<stdlib.h>typedef struct NODE{    int num;    struct NODE *pNext;}Node;void createList(Node **pList);void delElement(Node **pList,size_t ji);void addElement(Node **pList,size_t ji,int shu);void delAll(Node **pList);int main(){    Node *p = NULL;    createList(&p);        delAll(&p);    while(p != NULL)    {        printf("%d\n",p->num);        p = p->pNext;    }    return 0;}void delAll(Node **pList)//销毁链表{    Node *del;    while(*pList != NULL)    {        del = *pList;        *pList = (*pList)->pNext;        free(del);    }}void addElement(Node **pList,size_t ji,int shu)在第几个位置后面添加数字{    size_t weiJun = 1;    Node *zou = *pList;    Node *add = (Node*)malloc(sizeof(Node));    add->num = shu;    add->pNext = NULL;    if(NULL == *pList)    {        *pList = add;        return;    }        if(1 == ji)    {        add->pNext = *pList;        *pList = add;        return;    }    while(zou->pNext != NULL)    {        weiJun++;        if(weiJun == ji)        {            add->pNext = zou->pNext;            zou->pNext = add;            return;        }        zou = zou->pNext;    }    zou->pNext = add;}void delElement(Node **pList,size_t ji)//删除第几个位置的数字{    Node *zou;    Node *del;    size_t weiJun = 1;        if(NULL == *pList)    {        return;    }      if(1 == ji)    {        del = *pList;        *pList = (*pList)->pNext;        free(del);        return;    }    zou = *pList;    while(zou->pNext != NULL)    {        weiJun++;        if(weiJun == ji)        {            del = zou->pNext;            zou->pNext = zou->pNext->pNext;            free(del);            return;        }        zou = zou->pNext;    }}void createList(Node **pList){    Node *w,         *u;    int shu;    printf(“输入一个数字\n");    scanf("%d",&shu);    while(shu != 0)    {        u = (Node*)malloc(sizeof(Node));        u->num = shu;        u->pNext = NULL;        if(NULL == *pList)        {            *pList = u;        }        else        {            w->pNext = u;        }        w = u;        printf("输入一个数字");        scanf("%d",&shu);    }} 


 

0 0