数据结构广义表幻灯片.ppt
《数据结构广义表幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据结构广义表幻灯片.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构广义表第1页,共16页,编辑于2022年,星期六1 1 广义表广义表的定义的定义 一、广义表定义一、广义表定义 广义表可定义为:数据元素可以是表的线性表。广义表可定义为:数据元素可以是表的线性表。记为:记为:LSLS(d(d1 1,d,d2 2,d,dn n)LSLS为表名,为表名,d di i(i(i1,2,1,2,n),n),可以是可以是单元素单元素(称为称为原子原子,用小写字母,用小写字母表示表示),也可以是,也可以是广义表广义表(称为称为子表子表,用大写字母表示,用大写字母表示);若广义表若广义表LSLS非空,则必有非空,则必有n大于大于0(即(即 n 0n 0)n n为表的长
2、度,当长度为为表的长度,当长度为0 0时称为时称为空表空表;称非空表的第一个元素称非空表的第一个元素d d1 1为为表头表头,其余元素组成的其余元素组成的表表(d d2 2,d,dn n)称为称为表尾表尾。第2页,共16页,编辑于2022年,星期六注意:注意:表尾可以可以是空表,而表头可以是原子,也可以是一个表尾可以可以是空表,而表头可以是原子,也可以是一个表表。广义表的抽象类型定义采用递归定义如教材广义表的抽象类型定义采用递归定义如教材P.107P.107。二、二、广义表的表达方式及例子广义表的表达方式及例子1 1A=()AA=()A是一个空表,其长度为是一个空表,其长度为0 0。2 2B=
3、(e)B=(e)列表列表B B只有一个原子只有一个原子e e,其长度为其长度为1 1。3 3C=(a,(b,c,d)C=(a,(b,c,d)列表列表C C的长度为的长度为2 2,表头为原子,表头为原子,第二个元素是一个列表第二个元素是一个列表(b,c,d)b,c,d)。4.D=(A,B,C)4.D=(A,B,C)列表列表D D的长度为的长度为3 3,表头也是一个列表表头也是一个列表A A,表尾是列表(表尾是列表(A,BA,B),注意:注意:这里引用了已有的列表这里引用了已有的列表A A、B B、C C作为该广义表作为该广义表D D的元素。的元素。第3页,共16页,编辑于2022年,星期六5 E
4、=(a,E)这是一个递归列表,其元素中有自己。这是一个递归列表,其元素中有自己。广义表也可以用图形表示,例如前述的广义表广义表也可以用图形表示,例如前述的广义表D和和E可表示为:可表示为:beacdaDABC广义表广义表DE广义表广义表E第4页,共16页,编辑于2022年,星期六2 2 广义表广义表的的基本运算基本运算广义表的基本运算广义表的基本运算 取表头取表头 HEAD(LS)HEAD(LS);取表尾取表尾 TAIL(LS)TAIL(LS)。第5页,共16页,编辑于2022年,星期六3 3 广义表的广义表的存储结构存储结构 广义表中的数据元素可以是单元素,或是广义表,广义表中的数据元素可以
5、是单元素,或是广义表,很难用顺序存储结构表示,常采用链式存储结构。很难用顺序存储结构表示,常采用链式存储结构。1.1.表头表尾链表头表尾链存储结构存储结构 有两类结点:表结点和单元素结点。有两类结点:表结点和单元素结点。tag=1 hp tp 表结点表结点 tag=0 data 单元素结点单元素结点 tagtag标志域,标志域,0 0表示结点为单元素结点,表示结点为单元素结点,1 1表示为表结点;表示为表结点;hphp:表头指针域;表头指针域;tptp:表尾指针域;表尾指针域;datadata:值域。值域。第6页,共16页,编辑于2022年,星期六3 3 广义表的广义表的存储结构存储结构形式描
6、述为:形式描述为:typedef enum ATOM,LIST ElemTagtypedef enum ATOM,LIST ElemTagtypedef struct GLNode typedef struct GLNode /定义广义表结点ElemTage tag;ElemTage tag;/公共部分,用以区分 原子结点和表结点UnionUnion /原子结点和表结点的联合部分 AtomType atom;AtomType atom;/原子类型结点域,/AtomTypeAtomType由用户定义 Struct struct GLNode *hp,*tp;ptr;Struct struct G
7、LNode *hp,*tp;ptr;/表结点的指针域,/ptr.hpptr.hp 与ptr.tpptr.tp分别指向广义表的表头和表尾。*Glist;Glist;/广义表类型 第7页,共16页,编辑于2022年,星期六3 3 广义表的广义表的存储结构存储结构这种存储结构的特点是:这种存储结构的特点是:最上层的表结点数即为广义表的长度;最上层的表结点数即为广义表的长度;层次清楚;层次清楚;表结点数目多,与广义表中括号对的数目不匹配。表结点数目多,与广义表中括号对的数目不匹配。例例例例:C=(a,(b,c,d)C=(a,(b,c,d)1 11 11 11 11 10 0 a a0 0 b b0 0
8、 c c0 0 d d(b,c,d)b,c,d)(b,c,d)b,c,d)(c,d)c,d)(d)d)C C第8页,共16页,编辑于2022年,星期六3 3 广义表的广义表的存储结构存储结构2.2.同层结点链存储结构同层结点链存储结构 有两类结点:表结点和单元素结点。有两类结点:表结点和单元素结点。tag=1 hp tp 表结点表结点 tag=0 data tp 单元素结点单元素结点 结点结构结点结构是无论什么结点都有三个域:是无论什么结点都有三个域:第一个域是结点类型标志第一个域是结点类型标志tagtag;第二个域是指向一个列表的指针(当第二个域是指向一个列表的指针(当tag=1tag=1时
9、)时)或一个原子(当或一个原子(当tag=0tag=0时);时);第三个域是指向下一个结点的指针第三个域是指向下一个结点的指针tp。第9页,共16页,编辑于2022年,星期六3 3 广义表的广义表的存储结构存储结构形式描述为:形式描述为:typedef enum ATOM,LIST ElemTagtypedef enum ATOM,LIST ElemTagtypedef struct GLNode typedef struct GLNode /定义广义表结点ElemTage tag;ElemTage tag;/公共部分,用以区分 原子结点和表结点UninUnin /原子结点和表结点的联合部分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 广义 幻灯片
限制150内