网站大量收购独家精品文档,联系QQ:2885784924

广义表的输出遍历.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
广义表的输出遍历

《数据结构》实验报告 班姓 名 学 号实验目: 实验目的:实验内容:一、需求分析 1.本演示程序中,2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“”之后,由用户在键盘上输入, 3.程序执行的命令包括: (1);(2);() 4、测试数据:输入:(a,(),((b,c),d)) 输出:(a,(),((b,c),d)) 二 概要设计两部分,一个是广义表的存储,另一个是广义表的读取。这部分都借用栈来每个的直接。执行操作后回到栈顶元素。下一操作。程序分为三个函数。主函数创建函数和函数。三 详细设计 ??定义的类型,分为四个区域:标志域,数据域,子表指针域以及后继指针域。结点命名为GNode,并定义指向结点类型的指针GList。创建函数跟遍历函数都需用到栈,故定义一个全局变量:指向GNode的指针栈。 是广义表的创建。 两个结点指针p是新结点的指针,r当前节点的指针。要定义一个栈顶变量top初始化为-1.字符变量ch用于存储输入烦人字符。 读的字符判断否为(若不是返回-1后面判断广义表创建成功与否)执行后续。 一个,使head和r都指向该。当读取的字符不为回车符就while循环。S通过判断ch的不同类型执行不同的。 当前节点的标志域置为数据域置为空。进。申请新的并初始化。节点的子表指针指向新的节点,当前节点指向新的节点。 。新的初始化。的后继指针指向新结点,当前节点指针指向新的结点。 。节点的后继指针空。栈不空,当前指针栈顶指针栈顶指针出栈。 也就是数据。的标志域置存入数据域,并将子表指针。 将当前的后继指针置空,读取下一个字符。 循环结束后栈不空,返回-1读入的广义表错误。返回的 首先判断广义表创建成功与否。通过函数返回值判断。失败“输入错误!”。 执行后续操作。定义一个当前指针p并让p指向头结点。变量top初始化-1.p不空while循环。 P标志域为说明有子表,输出(。指针进栈,p等于子表指针。 p的标志域为 判断p的数据域是否为空。就输出数据域的数据。 p的后继指针为空不空,pp的后继指针。当栈不空且的后继为空时,循环输出),栈顶指针出栈。若p的后继指针空,输出逗号,pp的后继指针。 。 一个变量a等于创建函数的返回值。调用函数以及遍历函数四 使用说明、测试分析及结果 1.程序使用说明 (1)本程序的运行环境为VC6.0。 (2)进入演示程序后即显示提示信息: 2. 测试数据:输入:(a,(),((b,c),d)) 输出:(a,(),((b,c),d)) 3.运行界面 五、实验总结 思路老师都讲得很详细了,只是有些的处理需要我们自己动脑筋,比如。在具体程序的编写的时候我遇到了一个大问题,就是函数调用参数的。最开我将头结点定义为全局变量,导致creat函数不能修改head的值输出为空。后来老师的下将head变为局部变量通过传调用解决了问题。

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档