广义表
2016-05-28 16:37
155 查看
广义表的定义:
![](https://img-blog.csdn.net/20160528163216384)
在广义表中约定:
① 第一个元素是表头,而其余元素组成的表称为表尾;
② 用小写字母表示原子类型,用大写字母表示广义表。
广义表与线性表的区别和联系?
广义表中元素既可以是原子类型,也可以是广义表; 当每个元素都为原子且类型相同时,就是线性表。
特点:
![](https://img-blog.csdn.net/20160528163241514)
特别提示:任何一个非空表,表头可能是原子,也可能是广义表;但表尾一定是广义表。
![](https://img-blog.csdn.net/20160528163318588)
![](https://img-blog.csdn.net/20160528163336891)
两种特殊的基本操作:
GetHead( L) ——取表头(可能是原子或列表);
GetTail(L ) ——取表尾(一定是列表) 。
例如:
![](https://img-blog.csdn.net/20160528163407063)
广义表可以采用顺序存储结构吗?
由于广义表中的数据元素的类型不统一,因此难以采用顺序存储结构来存储。
如何采用链接存储结构存储广义表?
若广义表不空,则可分解为表头和表尾;反之,一对确定的表头和表尾可唯一地确定一个广义表。
广义表的存储结构——头尾表示法
![](https://img-blog.csdn.net/20160528163439588)
![](https://img-blog.csdn.net/20160528163505010)
![](https://img-blog.csdn.net/20160528163523151)
![](https://img-blog.csdn.net/20160528163545886)
在广义表中约定:
① 第一个元素是表头,而其余元素组成的表称为表尾;
② 用小写字母表示原子类型,用大写字母表示广义表。
广义表与线性表的区别和联系?
广义表中元素既可以是原子类型,也可以是广义表; 当每个元素都为原子且类型相同时,就是线性表。
特点:
特别提示:任何一个非空表,表头可能是原子,也可能是广义表;但表尾一定是广义表。
两种特殊的基本操作:
GetHead( L) ——取表头(可能是原子或列表);
GetTail(L ) ——取表尾(一定是列表) 。
例如:
广义表可以采用顺序存储结构吗?
由于广义表中的数据元素的类型不统一,因此难以采用顺序存储结构来存储。
如何采用链接存储结构存储广义表?
若广义表不空,则可分解为表头和表尾;反之,一对确定的表头和表尾可唯一地确定一个广义表。
广义表的存储结构——头尾表示法
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 数据结构之Treap详解
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)