第4周项目1-建立单链表
来源:互联网 发布:linux 中文字体 编辑:程序博客网 时间:2024/06/05 19:01
问题及代码:
/* * Copyright(c)2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:Kaka.cpp * 作 者:魏铭阳 * 完成日期:2016年9月22日 * * 问题描述: 定义单链表存储结构,通头插法和尾插法建立单链表 * 输入描述: 无 * 输出描述: 显示建立后的结果 */(1) list.h的代码#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);//输出单链表
(2)定义函数的代码#include"list.h"void CreateListF(LinkList *&L,ElemType a[],int n)//头插法建立单链表{ LinkList *s; int i; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL;//创建头结点,其next域为NULL for(i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i];//创建数据节点*s 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)); r=L; for(i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i];//创建数据节点*s r->next=s;//将*s插在*r之后 r=s; } r->next=NULL;}void DestroyList(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;//p开始指向节点 while(p!=NULL) { printf("%d",p->data); p=p->next; } printf("\n");}
(3)main函数的代码#include"list.h" 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; }
运行结果:
知识点总结:
定义单链表存储结构,使用头插法和尾插法建立单链表。
学习心得:
分清头插法和尾插法的区别,熟练掌握是王道。
0 0
- 第4周 项目1-建立单链表
- 第4周项目1 - 建立单链表
- 第4周项目1-建立单链表
- 第4周项目1-建立单链表
- 【第4周 项目1 - 建立单链表】
- 第4周 项目1 - 建立单链表
- 第4周项目1-建立单链表
- 第4周 项目1 - 建立单链表
- 第4周项目1建立单链表
- 第4周项目1 建立单链表
- 第4周项目1 建立单链表
- 第4周项目1建立单链表
- 第4周项目1-建立单链表
- 第4周 项目1-- 建立单链表
- 第4周项目1-建立单链表
- 第4周项目1 -建立单链表
- 第4周项目1-建立单链表
- 【第4周 项目1-建立单链表 】
- sql server中高并发情况下同时执行select和update语句死锁问题(一)
- spark 内存管理
- WPF多线程直接访问界面的控件的解决方式
- Windows下faster-rcnn编译
- requestFocus() 与 requestFocusFromTouch() 方法的区别
- 第4周项目1-建立单链表
- springMVC初识,最简单的
- 在ubantu14下使用composer安装laravel的记录
- Android7.0 PackageManagerService (1) 通信结构、启动和main函数
- 第四周项目2—建设“单链表”算法库
- JS—数组深层复制
- 笔试中的static
- 第四周项目3-求集合并集
- Codeforces Beta Round #51 D. Beautiful numbers(数位dp)