第四周--1

来源:互联网 发布:淘宝宝贝像素 编辑:程序博客网 时间:2024/06/05 09:42

问题及描述:

/*  烟台大学计算机学院    文件名称:xm.cpp    作者:范宝磊  完成日期:2017年9月24日    问题描述:建立单链表(头插法,尾插法)   输入描述:无   输出描述:链表的值   */   #include <stdio.h>  #include <malloc.h>  typedef int ElemType;    typedef struct LNode  {      ElemType data;        struct LNode *next;  }Linklist;  void  CreateListF(Linklist *&L,ElemType a[],int n);//头插法  void  CreateListR(Linklist *&L,ElemType a[],int n);//尾插法  void  DestoryList(Linklist *&L);  void  DispList(Linklist *L);  int main()  {      Linklist *L1,*L2;        ElemType a[8]={7,9,8,2,0,4,6,3};        printf("头插法建表结果:");        CreateListF(L1,a,8);        DispList(L1);        printf("尾插法建表结果:");        CreateListR(L2,a,8);        DispList(L2);        DestoryList(L1);        DestoryList(L2);        return 0;  }    void  CreateListF(Linklist *&L,ElemType a[],int n)  {      Linklist *s;        L=(Linklist *)malloc(sizeof(Linklist));        L->next=NULL;        for(int i=0;i<n;i++)      {          s=(Linklist *)malloc(sizeof(Linklist));          s->data=a[i];          s->next=L->next;          L->next=s;      }  }    void  CreateListR(Linklist *&L,ElemType a[],int n)  {       Linklist *s,*r;         L=(Linklist *)malloc(sizeof(Linklist));         r=L;         for(int i=0;i<n;i++)       {           s=(Linklist *)malloc(sizeof(Linklist));             s->data=a[i];             r->next=s;             r=s;         }      r->next=NULL;  }    void  DestoryList(Linklist *&L)  {      Linklist *pre=L,*p=L->next;        while(p!=NULL)      {          free(pre);            pre=p;            p=pre->next;      }      free(pre);  }    void DispList(Linklist *L)  {      Linklist*p=L->next;        while(p!=NULL)      {          printf("%d ",p->data);            p=p->next;        }        printf("\n");  }  



运行及结果:

  

    学习心得:

      通过此方法,学会了用头插法尾插法建立点链表,很高兴

原创粉丝点击