第四周 项目一 建立单链表
2017-10-16 20:10
363 查看
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:算法库.cpp *作 者:孙仁圆 *完成日期:2017年10月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 DestoryList(Linklist *&L); void DispList(Linklist *L); int main() { Linklist *L1,*L2; ElemType a[8]={7,9,8,2,0,4,6,3}; printf("头插法建表结果:"); CreateListF(L1,a,8); DispList(L1); printf("尾插法建表结果:"); CreateListR(L2,a,8); DispList(L2); DestoryList(L1); DestoryList(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; L->next=s; } } void CreateListR(Linklist *&L,ElemType a[],int n) { Linklist *s,*r; L=(Linklist *)malloc(sizeof(Linklist)); r=L; for(int i=0;i<n;i++) { s=(Linklist *)malloc(sizeof(Linklist)); s->data=a[i]; r->next=s; r=s; } r->next=NULL; } void DestoryList(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"); }
相关文章推荐