![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
广义表
凌空的桨
https://github.com/marsmarcin/
展开
-
广义表1——基本内容
广义表与数组一样,广义表也是线性表的推广。它是一种递归定义的数据结构,但其数据元素的结构类型可以不同,其元素可以是普通元素,也可以是广义表。广义表被广泛应用于人工智能等领域的表处理语言Lisp中它把广义表作为基本的数据结构,就连程序也表示成一系列的广义表。【广义表的定义及头尾链表表示】广义表,简称表(lists),是由n个元素(a1,a2,a3,…,an)组成的有限序列。当n=0时称为空...原创 2018-12-19 22:09:23 · 1431 阅读 · 0 评论 -
广义表2——创建广义表
编写一个算法,使用头尾链表表示法创建广义表,并求该广义表的长度和深度。【分析】主要考察对广义表的头尾链表存储结构的表示及基本操作。因为广义表是递归定义的所以可以使用递归方法创建广义表、求广义表的表头元素、长度和深度。 SeqString.h#define MaxLen 255typedef struct{ char str[MaxLen]; int l...原创 2018-12-20 19:54:07 · 1533 阅读 · 0 评论 -
广义表3——广义表的扩展线性链表表示
【结点结构】用扩展线性链表表示时,广义表也可以包含两种结点:表结点和原子结点,这两种结点都包含三个域。其中,表结点由标志域tag、表头指针域hp、表尾指针域tp构成:原子结点由指针域、原子的值域和表尾指针域构成。标志域tag用来区分当前结点是表结点还是原子结点,当tag=0时为原子结点,tag=1时为表结点;hp和tp分别指向广义表的表头和表尾;atom用来存储原子结点的值。扩展线性链表...原创 2018-12-21 19:10:19 · 3575 阅读 · 0 评论