第四周项目1 建立单链表

来源:互联网 发布:明解c语言 第三版 pdf 编辑:程序博客网 时间:2024/06/16 13:26

问题与代码

/*   *Copyright (c) 2015,烟台大学计算机与控制工程学院   *All rights reserved.   *文件名称:link.cpp   *作者:陈梦萍   *完成日期:2015年10月9日   *版本号:v1.0   *   *问题描述: 定义单链表存储结构,用头插法和尾插法建            立单链表,并显示建立好以后的结果。 *输入描述:无   *程序输出:若干数据   */    


//link.cpp

#include<iostream>#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;                    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=p->next;    }    free(p);   }//输出单链表void DispList(LinkList *L)  {    LinkList *p=L->next;    while (p!=NULL)    {        printf("%d ",p->data);        p=p->next;    }    printf("\n");}


运行结果

知识点总结

        由最后的结果输出,我们可以看到,头插法与尾插法各有优劣,头插法建立链表相对来说算法比较简单但是与原数组的数字顺序相反的,而尾插法则恰恰相反,虽说算法相较复杂一些,但建表结果与原数组数字顺序相同,看起来比较舒服。

      

 

0 0
原创粉丝点击