数据结构和算法设计-1。单向环表实现约瑟夫环_第1页
数据结构和算法设计-1。单向环表实现约瑟夫环_第2页
数据结构和算法设计-1。单向环表实现约瑟夫环_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单向环表实现约瑟夫环一、实验目的(1)进一步认识线性表,并上机实现线性链表。(2)学会从算法到具体程序的转换,并注意区别程序算法与具体程序的不同。(3)本实验用C语言,熟悉C语言的各种操作,并学会调试程序。二、实验内容请按以下要求编程实现从键盘输入整数M,通过CREATE函数生成一个具有M个结点的单向环表。环表中的结点编号依次为1,2,M。从键盘输入整数S(1TYPEDEFSTRUCTLNODEINTDATASTRUCTLNODENEXTLLNODE,LINK/定义链表的一个节点类型LNODE,以及指向该结构类型的指针类型LINKTYPEDEFSTRUCTLINKHEAD,TAILINTLENLINKLISTLINKLISTL/定义一个全局链表LMAINLINKPINTM,S,N,I,COUNTVOIDCREATEINT,LINK/对CREATE函数的声明,LINKDELETELINK/对DELETELINK函数的声明,并且该函数的返回值为LINK类ESCANF“DDD“,IFM0N0S0/判断M,N,S是否是大于零的整数CREATEM/生成一个环链表PLHEADNEXTL/定义一个指向首节点的指针FORI1IIFISBREAKELSEPPNEXTL/从I1开始,知道找到IS的节点输出数据删除节点BFORI1IDATAPDELETEPGOTOBELSEPPNEXTL/循环输出约瑟夫问题所求数据ELSEPRINTF“PLEASEENTERINTNUMBERSWHICHALLAREBIGGERTHAN0N“GOTOE/容错处理SYSTEM“PAUSE“/MAINVOIDCREATEINTMINTILLEN0LINKP,QIFPLINKMALLOCSIZEOFLNODEEXIT0/生成头指针及简单的容错处理LHEADPIFPLINKMALLOCSIZEOFLNODEEXIT0LHEADNEXTLPFORI1IDATAIQPIFPLINKMALLOCSIZEOFLNODEEXIT0QNEXTLPLTAILP/从I1开始一次对各节点的数据赋值ELSEPDATAIPNEXTLLHEADNEXTL/当生成最后一个节点后,将其指向第一个节点形成环链LLEN/VOIDCREATELINKDELETELINKPLINKQQPWHILEQNEXTLPQQNEXTL/每次从P节点开始找到前一个的节点,不是从头结点开始IFQNEXTLQFREEQLLENLTAILNULLRETURNNULL/链表中只剩下一个节点时,直接返回NULLELSEQNEXTLQNEXTLNEXTLIFPLHEADNEXTLLHEADNEXTLPNEXTLIFPLTAILLTAILPNEXTLFREEP/释放P节点LLENRETURNQNEXTL/LINKDELETE分块(分函数)调试程序,修改程序中出现的错误分析实验中出现的错误,完成实验报告四、实验结果下图为C语言程序设计教程上的例题简单的容错处理五、实验总结由于本实验用C语言编写,因此要注意C语言中,对变量的定义都在函数的开始,否则在编译过程中会报错;C语言中不能“引用”变量,于是定义了一个全局变量的链表L链表L是一个环链,利用环链寻找节点P相邻的前一个节点时不必从头结点开始寻找,可以以P节点为“头”搜索P的前一个节点,可以避免因为头结点被删除后给寻找带来麻烦对LINKDELETELINKP函数的改进LINKDELETELINKPLINKQIFPNEXTLPFREEPLLEN0LTAILNULLRETURNNULL/链表中只剩下一个节点时,直接返回NULLELSEPDATAPNEXTLDATAQPNEXTLPNE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论