农夫过河问题地求解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
农夫过河问题地求解

实验报告4 题目:编制一个演示农夫过河问题的求解的程序 班级:生物信息10级(1)姓名:李沙沙 学号:2010446013 完成日期:2012.01 一、需求分析 1.本演示程序中,是解决农夫、狼、羊和白菜过河问题。一个农夫带着一只狼,一只羊和一些菜过河,河边只有一条木船,由于船太小,只能装下农夫和他的一样东西,在无人看管的情况下。狼要吃羊,羊要吃菜,请问农夫如何菜能使三样东西平安过河? 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在其后。 3.程序执行的命令包括: 1)构造集合1;2)构造集合2;3)求并集;4)求交集;5)求差集;6)结束。 “构造集合1”和“构造集合2”时,需以字符串的形式键入集合元素。 4.测试数据 (1)Set1=“magazine”,Set2=“paper”, Set1∪Set2=“aegimnprz”, Set1∩Set2=“ae”,Set1-Set2=“gimnz”; (2)Set1=“012oper4a5tion89”, Set2=“error data”, Set1∪Set2=“adeinoprt”, Set1∩Set2=“aeort”, Set1-Set2=“inp”。 二、程序的模块结构 本程序包含四个模块: 1)主程序模块: void main(){ 初始化; dc{ 接受命令; 处理命令; }while(“命令”=“退出”); } 2)集合单元模块――实现集合的抽象数据类型; 3)有序表单元模块――实现有序表的抽象数据类型; 4)结点结构单元模块――定义有序表的结点结构。 有序表单元模块主程序模块 有序表单元模块 主程序模块 集合单元模块 结点结构单元模块 三、祥细设计 1.元素类型、结点类型和指针类型 typedef char ElemType;//元素类型 typedef struct NodeType { ElemType data; NodeType *LinkType; // 结点类型,指针类型 Status MakeNode(LinkType p, ElemType e) { //分配由p指向的数据元素为e、后继为“空”的结点,并返回TRUE, //若分配失败,则返回FALSE p=(Link Type)malloc(sixeof(Node Type)); if(!p)return FALSE; p-data=e;p-next=NULL; return TRUE; } void freeNode(LinkType p) { //释放p所指结点 } Link Type Copy(LinkType p) { //复制生成和指针p所指结点有同值元素的新结点并返回, //若分配空间失败,则返回空指针。新结点的指针域为NULL s=(LinkType)malloc(sizeof(NodeType)); if(!s)return NULL; s-data=p-data; s-next=NULL; return s; } ElemType Elem(LinkType p) { //若指针p!=NULL,则返回p所指结点的数据元素,否则返回‘#’ } LinkType SuccNOde(LinkType p) { //若指针p!=NULL,则返回指向p所指结点的后继元素的指针, //否则返回UNLL } 2.根据有序表的基本操作的特点,有序表采用有序链表实现。链表设头、尾两个指针和表长数据域,并附设头结点,头结点的数据域没有实在意义。 Sypedef struce { LinkType head, tail; //分别指向线性链表的头结点和尾结点 Int size; //指示链表当前的长度 }OrderedLise; //有序链表类型 有序链表的基本操作设置如下: bool InitList (OrderedList L); //构造一个带头结点的空的有序链表L,并返回TRUE; //若分配空间失败,则令L.head为NULL,并返回FALSE void destro

文档评论(0)

泰山之颠 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档