前言-数据结构
数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。
广义表
- 定义
- 广义表也称为列表,是线性表的一种扩 展,也是数据元素的有限序列。记作: LS= (d0, d1,d2… dn-1)。其中di既可以是单个元素,也可以是广义表。
- 说明
- 广义表的定义是一个递归定 义因为在描述广 义表时又用到了广义表:
- 在线性表中数据元素是单个元素,而在广义表中,元素可以是单个元素称为单元素(原于),也可以是广义表称为广义表的子表:
- n是广义表长度:
- 例子
- A为空表,表长为0
A = ()
- B的表长为2,两个元素分别为a和子表(b,c,d)
B = (a,(b,c,d))
- C中只有一个元素e,表长为1
C = (e)
- D的表长为4,它的前三个元素A,B, C广义表、第四个是单元素
D = (A,B,C,f)
- E是递归表
E = (a,E)
- 广义表的运算 注意表尾tail是剩余元素组成的表一定要再加个括号()
- 若广义表不空,则可分成表头和表尾,反之,对表头和表尾可唯一 确定广义表。对非空广义表:称第一个元素为L的表头,其余元素组成的表称为LS的表尾:
- 广义表的存储结构
- 由于广义表中数据元素可以具有不同结构,故难以用顺序结构表示广义表。通常采用链表存储方式如何设定链表结点?广义表中的数据元素可能为单元素(原子)或子表,由此需要两种结点:一种是表结点,用以表示广义表;一种是单元素结点,用以表示单元素(原子)
- 单元素结点
- 表结点
- 广义表的存储结构示意图