第四周项目1-建立单链表

来源:互联网 发布:网页数据库查询系统 编辑:程序博客网 时间:2024/05/30 23:04

问题及代码:

/*copyright (t) 2016,烟台大学计算机学院*All rights reserved.*文件名称:1.cpp*作者:常锐*完成日期:2016年9月16日*版本号:v1.0*问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。 *输入描述:无*程序输出:无*/
#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 DestroyList(LinkList *&L); //销毁单链表void DispList(LinkList *L);  //输出单链表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;}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;          //s指针域指向原来L的后继节点        L->next=s;                //L的指针域指向新插入的s    }}void CreateListR(LinkList *&L,ElemType a[],int n)//尾插法建立单链表{    LinkList *s,*r;               //头指针*s与增加的尾指针*r    int i;    L=(LinkList *)malloc(sizeof(LinkList));    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 *pre=L,*p=L->next;    while(p!=NULL)    {        free(pre);                     //释放*pre节点        pre=p;        p=pre->next;                   //“跟随”,同步后移    }    free(pre);                         //循环结束时pre已指向尾节点,释放尾节点,完成销毁}void DispList(LinkList *L)  //输出单链表{    LinkList *p=L->next;    while(p!=NULL)    {        printf("%d ",p->data);        p=p->next;    }    printf("\n");}

运行结果:


知识点总结:

       建立单链表、输出单链表、销毁单链表

心得体会:

       单链表问题虽然抽象繁琐,不过将抽象繁琐的内容“可视化”,能大大降低难度,加深对此知识点的理解。

0 0
原创粉丝点击