课程设计告广义表.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文档。上传文档
查看更多
课程设计告广义表

数据结构课程设计报告 广义表的存储与运算 ——广义表 班 级: 软件112班 姓 名: 邱 日 龙 指导教师: 兰 红 成 绩: 信息工程学院 2012 年 12 月 31 日 目录 需求分析 3 题目 3 要求 3 对题目分析 3 数据的输入输出 3 算法测试设计用例 4 概要设计 4 各抽象数据类型的定义 4 广义表的扩展线性链表表示 4 广义表的图形表示 5 带表头结点的链式存储 5 广义表的运算问题流程图 5 详细设计 8 1. 功能目录 8 2. 主函数 9 3. 字符串变广义表 10 4. 广义表的复制 11 5. 广义表的输出 12 6. 广义表的长度 12 7. 广义表的深度 13 8. 广义表的表头 13 9. 广义表的表尾 14 10. 广义表变为字符串 14 11. 查找广义表中的字符 15 调试分析 15 测试结果 15 1. 字符串变广义表 16 2. 广义表的复制 16 3. 广义表的长度 17 4. 广义表的深度 17 5. 广义表的表头 18 6. 广义表的表尾 18 7. 广义表变为字符串 19 8. 查找广义表中的字符 19 9. 重新设定广义表 20 参考文献 21 需求分析 题目 选择合适的存储结构表示广义表 要求 (1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。 (2)取广义表L的表头和表尾的函数head(L)和tail(L)。 (3)能用这两个函数的复合形式求出广义表中的指定元素。 (4)由广义表的字符串形式到广义表的转换函数Str.To-Lists(S):Lists,例如Str.To-Lists(’(a,(a,b),c)’)的值为一个广义表。 (5)由广义表到广义表的字符串形式的转换函数Lists-To-Str(L):String。 (6)最好能设置多个广义表。 对题目分析 本题主要考察广义表的应用,所以之前先要对广义表要有一定的了解。线性表被定义为一个有限的序列(a1,a2,a3,…,an)其中ai被限定为是单个数据元素。广义表也是n个数据元素d1,d2,d3,…,dn的有限序列,但不同的是,广义表中的di 则既可以是单个元素,还可以是一个广义表,通常记作:GL=(d1,d2,d3,…,dn)。GL是广义表的名字,通常广义表的名字用大写字母表示。n是广义表的长度。若其中di是一个广义表,则称di是广义表GL的子表。在广义表GL中,d1是广义表GL的表头,而广义表GL其余部分组成的表(d2,d3,…,dn)称为广义表的表尾。由此可见广义表的定义是递归定义的。因为在定义广义表时,又使用了广义表的概念。GList *StrToLists(char *s):字符串变为广义表的函数 char *ListsToStr(GList *L,int k):广义表变为字符串的函数 GList *CopyGList(GList *p):复制广义表的函数 int length(GList *L):计算广义表长度的函数 int depth(GList *L):计算广义表深度的函数 int Find(GList *L,char ch):计算广义表深度的函数 void PrintGList(GList *L):打印广义表的函数 GList *head(GList *L):取广义表表头的函数 GList *tail(GList *L):取广义表表尾的函数 广义表的扩展线性链表表示 typedef struct GLNode { int tag; // tag为公共部分,只能为1和0,1代表 //表结点,0代表原子结点 union // 原子结点和表结点的联合部分 { ElemType data; // 原子结点的值域 struct GLNode *ph; // 表结点的表头的表头指针 }ptr; struct GLNode *pt; // 相当于线性链表的next,指向下一个元 //素结点 }GList;

文档评论(0)

erterye + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档