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

来源:互联网 发布:华为手机数据恢复中心 编辑:程序博客网 时间:2024/06/03 14:01
/** Copyright(c) 2017,烟台大学计算机学院* All rights reserved.* 文件名称:cpp1.* 作    者:薛瑞琪* 完成日期:2017 年 9 月 20 日* 版 本 号:v1.0** 问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。* 输入描述:无需输入* 程序输出:分别用头插法和尾插法建表的结果L1、L2*/

#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;    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;//将结点s插入到原首结点之前,头结点之后        L->next=s;    }}void CreateListR(LinkList *&L,ElemType a[],int n){    LinkList *s,*r;    L=(LinkList *)malloc(sizeof(LinkList));    r=L;//r始终指向尾结点,初始时指向头结点    for(int i=0;i<n;i++)    {        s=(LinkList *)malloc(sizeof(LinkList));        s->data=a[i];        r->next=s;//将结点s插入到结点r之后        r=s;    }    r->next=NULL;}void DestroyList(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");}

运行结果:



知识点总结:
利用单链表实现线性表基本运算的算法。
CreateListF(LinkList *&L,ElemType a[],int n);头插法建立单链表
CreateListR(LinkList *&L,ElemType a[],int n);尾插法建立单链表
DestroyList(LinkList *&L);销毁单链表      DispList(LinkList *L);输出单链表
学习心得:
加强了对线性表基本运算的理解和运用,巩固了上学期C语言中链表相关的代码。
学习了整体建立单链表的两个常用方法。


原创粉丝点击