- 烟台大学计算机学院
- 作者:王雪行
- 问题描述:建立单链表(头插法,尾插法)
- 输入描述:无
- 输出描述:链表的值
- */
- #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");
- }