【项目1 - 建立单链表】

本次项目的目标是定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。

测试主函数及函数声明源代码如下:

//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :test.cpp*
//*作者:田长航*
//*完成时间:2017年9月21日*
//*版本号: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 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;            //将*s插在原开始结点之前,头结点之后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;                    //r始终指向终端结点,开始时指向头结点for (i=0; i<n; i++){s=(LinkList *)malloc(sizeof(LinkList));//创建新结点s->data=a[i];r->next=s;          //将*s插入*r之后r=s;}r->next=NULL;           //终端结点next域置为NULL
}
销毁单链表的函数源代码如下:
void DestroyList(LinkList *&L)  //销毁单链表
{LinkList *p=L,*q=p->next;while (q!=NULL){free(p);p=q;q=p->next;}free(p);    //此时q为NULL,p指向尾结点,释放它
}

输出单链表的函数源代码如下:
void DispList(LinkList *L)  //输出单链表
{LinkList *p=L->next;while (p!=NULL){printf("%d ",p->data);p=p->next;}printf("\n");
}

运行结果截图如下:





												

数据结构上机实践第四周项目1 - 建立单链表相关推荐

  1. 数据结构上机实践第四周项目2 - 建设“单链表”算法库

    项目2 - 建设"单链表"算法库 本次实践的目的以多文件组织的形式建设"单链表算法库",以便在后续的工程中使用. 文中的多文件组织方式不再细说,可以点击此处参照 ...

  2. 数据结构上机实践第四周项目4 - 建设双链表算法库

    数据结构之自建算法库--双链表 各种算法结构都有各自的用途,在实际中我们会碰到各种工程,单链表有时无法或者不能很好的满足我们的需求,这个时候,双链表不失为一种好的数据结构.本次实践将建立双链表算法库, ...

  3. 第四周项目1建立单链表

    问题及描述: /* *Copyright(c++)2015,烟台大学计算机学院 *All rights reserved, *文件名称:test.cpp *作    者:程梦莹 *完成日期:2015年 ...

  4. 数据结构上机实践第四周项目7 - 多项式求和

    项目6 - 多项式求和 用单链表存储一元多项式,并实现两个多项式的加法. 提示:  1.存储多项式的数据结构  多项式的通式是pn(x)=anxn+an−1xn−1+...+a1x+a0.n次多项式共 ...

  5. 数据结构上机实践第四周项目3 - 单链表应用

    [项目3 - 单链表应用] 算法的建立就是为了应用所服务的,学会方法,真正能应用才是王道. 应用要求如下: 完成下面的应用时,除项目中给出的特殊要求,其余工作均可利用项目2完成的算法支持.  1.设计 ...

  6. 数据结构上机实践第四周项目5 - 猴子选大王

    数据结构实践--猴子选大王 首先呢,小普及一下 读者:难道你当我不知道 读者想对小编说: 进入正题,项目要求如下: 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只 ...

  7. 数据结构上机实践第四周项目6- 循环双链表应用

    数据结构实践--循环双链表应用 线性表都是单向的?链表都是单向的? 本次实践将利用循环双链表进行实际应用,感受这种数据结构的好处 要求如下: 设非空线性表ha和hb都用带头节点的循环双链表表示.设计一 ...

  8. 第4周实践项目1 建立单链表(非多组织结构)

    #include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode //定义单链 ...

  9. 第四周项目2--建立”单链表“算法库

    /*烟台大学计算机与控制工程学院 作 者:孙潇 完成日期:2015年10月5号 问题描述:按照"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库. 这一周,建的是 ...

最新文章

  1. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle...
  2. 图像处理:python实现canny算子
  3. Java并发编程:Lock和Synchronized 转
  4. 【Linux】一步一步学Linux——history命令(213)
  5. cassandra 数据到Java对象的映射绑定
  6. 边缘计算安全技术综述
  7. 浙江工业大学计算机应用基础,浙江工业大学期终考试命题稿-浙江大学人文学院.doc...
  8. 如何正确的开始用Go编程
  9. php携程语比,PHP 协程
  10. STM32F103_EXTI外部中断
  11. SUDTOJ 3323园艺问题 (线段树)
  12. 《算法新解》读记(一)
  13. 【事件驱动】【数码管识别】(C++动态链接库的封装和调用)
  14. 识图php,PHP利用百度识图接口把百度当图床
  15. 用于AB测试的减少方差方法总结和对比
  16. 硬盘上出现0KB文件无法删除解决
  17. 小程序——picker组件
  18. Python3爬取前程无忧数据分析工作并存储到MySQL
  19. 2015秋招经历和总结
  20. 学习英文-学以致用【场景:常说错的中式英文】

热门文章

  1. Wannafly挑战赛19:C. 多彩的树(状压+容斥)
  2. HDU 5978 2016ICPC大连 H: To begin or not to begin
  3. python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径
  4. 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索。
  5. Echarts数据可视化grid直角坐标系(xAxis、yAxis),开发全解+完美注释
  6. python实现自动提取句子中的关键字
  7. 使用python简单分析个人微信好友
  8. 百度网盘svip下载时显示下载请求中无下载速度
  9. 四种电荷分布,点电荷,体电荷,面电荷,线电荷
  10. 8086的总线操作顺序