第四周项目一 建立单链表

来源:互联网 发布:热血江湖衣服强化数据 编辑:程序博客网 时间:2024/06/05 21:49
/*    文件名称:建立单链表   作    者:胡德杰    完成日期:2017年9月21号    版 本 号:v1.1.7*/ #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)//头插法建立单链表{    LinkList *s;    int i;    L=(LinkList *)malloc(sizeof(LinkList));    //创建链表    L->next=NULL;    for(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;    int i;    L=(LinkList *)malloc(sizeof(LinkList));    //创建链表    L->next=NULL;    r=L;    for(i=0;i<n;i++)    {        s=(LinkList *)malloc(sizeof(LinkList));        s->data=a[i];        r->next=s;        r=s;    }    r->next=NULL;}void DestroyList(LinkList *&L)      //销毁单链表{    LinkList *p=L,*q=p->next;    while(q!=NULL)    {            free(p);     //释放            p=q;            q=q->next;    }    free(p);}void DispList(LinkList *L)  //输出单链表{    LinkList *p=L->next;    while (p!=NULL)    {        printf("%d ",p->data);        p=p->next;    }    printf("\n");}int main(){        LinkList *L1, *L2;    ElemType a[8]= {7, 9, 8, 2, 0, 4, 6, 3};    CreateListF(L1, a, 8);    printf("头插法建表结果:");    DispList(L1);    CreateListR(L2, a, 6);    printf("尾插法建表结果:");    DispList(L2);    DestroyList(L1);    DestroyList(L2);    return 0;}
知识点总结:
建立单链表以及多文件组织的应用
学习心得:
本来感觉链表挺难的,但用了老师的方法后感觉既简单又有趣。

原创粉丝点击