第四周项目—建立单链表

问题及代码:
/*   
烟台大学计算机学院   
   
文件名称:dfgdf.cpp   
   
作者:李金朴 
   
完成日期:2017年9月23日   
   
问题描述:建立单链表  
   
输入描述:无  
   
输出描述:链表的值  
   
*/     
#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");    
}

运行结果:


学习心得:
  学习了单链表的两种建立方法,并初步建成单链表库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值