- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章-3广义表
4.5 广义表 (General Lists) 4.5 广义表 (General Lists) A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) 4.5 广义表 (General Lists) 广义表的特性 有次序性 有长度 广义表结点定义 结点类型 utype = 0, 表头;= 1, 原子结点;= 2, 子表结点 信息域info utype=0时, 存放引用计数(ref);utype=1时, 存放数据值(value);utype=2时, 存放指向子表表头的指针(hlink) 尾指针tlink utype=0时, 指向该表第一个结点;utype?0时, 指向同一层下一个结点 存储表示的特点 广义表中的所有表,不论是哪一层的子表,都带有表头结点,空表也不例外; 其优点是便于操作:特别是在共享表的情形,如果删除表中第一个结点,不带表头结点的话,必须检测所有子表结点,逐一修改可能的指向被删结点的指针,这样工作量大,且易遗漏。如果所有子表都带表头结点,则不用修改任何指针; 表中结点的层次分明。所有位于同一层的表元素,在其存储表示中也在同一层; 最高一层表结点个数(除表头结点)即表的长度 广义表类的构造和访问成员函数 template class T GenlistT::GenList() { //构造函数 GenListNodeT *first = new GenListNode; if (first == NULL) { cerr “存储分配失败!\n”; exit(1); } }; template class T bool GenListT::Head(ItemsT x) { //若广义表非空,则通过x返回其第一个元素的值否则函数没有定义 if (first-tlink == NULL) return false; //空表 else { //非空表 x.utype = first-tlink-utype; x.info = first-tlink-info; return true; } //x返回表头的值 }; template class Tbool GenListT::Tail(GenListT lt) { //若广义表非空,则通过lt返回广义表除表头元素以外其他元素组成的表,//否则函数没有定义 if (first-tlink == NULL) return false; //空表 else { //非空表 lt.first-utype = 0; //设置头结点 lt.first-info.ref = 0; lt.first-tlink = Copy(first-tlink-tlink); return true; } }; template class T GenListNodeT *GenListT::First() { //返回广义表的第一个元素(若表空,则返回一个特定的空值NULL) if (first-tlink == NULL) return NULL; //空表 else return first-tlink; //非空表 }; template class T GenListNodeT *GenListT:: Next(GenListNodeT *elem) { //返回表元素elem的直接后继元素 if (elem-tlink == NULL) return NULL; else return elem-tlink; }; 广义表的递归算法 一个递归算法有两种:一个是递归函数的外部调用;另一个是递归函数的内部调用。 通常,把外部调用设置为共有函数,把内部调用设置为私有函数。 template class TGenListNodeT* GenListT:: Copy(GenListNode T *ls) { //私有函数 //复制一个 ls 指示的无共享子表的非递归表 GenListNodeT *q = NULL; template class Tint GenListT::Length(
您可能关注的文档
- 第十二章 对称轴 12.1~12.2 测试题.ppt
- 第十二章 高压氧(PPT-47).ppt
- 第十二章RMA(客户服务).ppt
- 第十二章可编程DMA控制8237A.ppt
- 第十五章19世纪末20世纪初欧美教育革新运动.ppt
- 第十九讲 19世纪中后期俄罗斯文学.ppt
- 第十五讲 词语锤炼11.ppt
- 第十五讲 福费廷(包买票据).ppt
- 第十八章 通货膨胀与失业 Inflation and unemployment(PPT-41).ppt
- 第十八章镇痛药(analgesic drugs).ppt
- 2025年安徽工商职业学院单招职业技能测试题库带答案(典型题).docx
- 2025年洛阳科技职业学院单招职业技能测试题库带答案(新).docx
- 2025年荆门职业学院单招职业技能测试题库及答案(易错题).docx
- 2025年宣化科技职业学院单招职业技能测试题库(精练).docx
- 2025年包头职业技术学院单招职业技能测试题库带答案(新).docx
- 2025年江西工商职业技术学院单招职业技能测试题库带答案(精练).docx
- 2025年黑龙江农业经济职业学院单招职业技能测试题库精编.docx
- 2025年山东艺术设计职业学院单招职业技能测试题库带答案(基础题).docx
- 2025年陕西工商职业学院单招职业技能测试题库带答案(突破训练).docx
- 2025年承德护理职业学院单招职业技能测试题库【word】.docx
最近下载
- 跨境电子商务基础:跨境电子商务平台PPT教学课件.pptx
- 2025年芜湖职业技术学院单招职业技能测试题库有完整答案.docx VIP
- 2023-2024学年江西师大附中八年级(下)月考数学试卷(含答案).docx
- 企业碳排放影响因素研究-浙江工商大学杂志社.pdf VIP
- 2024年银行知识财经金融知识竞赛-中国农业发展银行信贷标准化知识笔试考试历年高频考点试题摘选含答案.docx
- 定向越野识图用图课件.ppt
- 2024年心血管内科(副高)考试历年真题常考点试题带答案.docx VIP
- 丹东银行2021年年度报告.docx
- 给水排水管道工程施工及验收规范GB 50268-2008上.ppt
- GB51057-2015 种植塑料大棚工程技术规范.docx
文档评论(0)