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

来源:互联网 发布:2017年新出的网络剧 编辑:程序博客网 时间:2024/04/30 11:31

**

问题及代码:

**

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

    #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)      {          int i=0;          LinkList *p,*q;          L=(LinkList *)malloc(sizeof(LinkList));          L->next=NULL;          while(i<n)          {              p=(LinkList *)malloc(sizeof(LinkList));              p->data=a[i];              p->next=L->next;              L->next=p;              i++;          }      }      void CreateListR(LinkList *&L,ElemType a[],int n)      {          LinkList *p,*q;          int i=0;          L=(LinkList *)malloc(sizeof(LinkList));          L->next=NULL;          q=L;          while(i<n)          {              p=(LinkList *)malloc(sizeof(LinkList));              p->data=a[i];              p->next=q->next;              q->next=p;              q=p;              i++;          }      }      void DispList(LinkList *L)      {          LinkList *p;          p=L;          p=p->next;          while(p!=NULL)          {              printf("%d ",p->data);              p=p->next;          }          printf("\n");      }      void DestroyList(LinkList *&L)      {          LinkList *p,*q;          p=L,q=p->next;          while(q!=NULL)          {              free(p);              p=q;              q=q->next;          }          free(q);      }  

**

运行结果:

**
这里写图片描述


知识点总结:

1.单链表的建立
2.输出和摧毁


**

学习心得:

**
博客应及时完成,以便于知识的扎实。

0 0
原创粉丝点击