leiyahui

纸上得来终觉浅,绝知此事要躬行
广义表的链式存储结构

对于广义表来说,它的元素可以是单原子或者说是子表,故用顺序存储结构来表示有一点困难

一 单链表示法

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节点

posted on 2015-11-21 13:29  雷大叔  阅读(1901)  评论(0)    收藏  举报