广义表的链式存储结构
对于广义表来说,它的元素可以是单原子或者说是子表,故用顺序存储结构来表示有一点困难
一 单链表示法
| Atom | data/link | next |
atom=0 di为单元素 atom=1 di为子表
data/link=data时atom=0,data/link=link时atom=1
next表示下一个节点
节点描述
typedef struct node
{
int atom;
union
{
datatype data;
struct node* link;
}
struct node* next;
}Lsnode,*Lslink;
为了广义表操作方便,通常为每一个广义表引入头结点,
| 1 | link | NULL |
link指向第一个节点
二 双链表表示法
| Link1 | data |
Link2 |
Link1表示相应子表的指针,或者为NULL,为空时表示的元素为原子,为子表指针时表示的是子表
data 当di为子表时表示的是表名,当di为原子时表示的是原子值。
LInk2指向di+1节点
浙公网安备 33010602011771号