【第四周项目1-建立单链表】
来源:互联网 发布:nginx配置多个站点 编辑:程序博客网 时间:2024/06/06 06:33
-
-
-
-
-
-
-
-
-
-
- #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