//---广义表的首尾链表存储结构---//
typedef enum{ATOM,LIST}ElemTag; //ATOM == 0:原子,LIST == 1:字表
typedef struct GLNode{
ElemTag tag; //公共部分,用于区分原子节点和表节点
union share{ //原子节点和表节点的联合部分
AtomType atom; //atom是原子节点的值域,AtomTpye由用户定义
struct{struct GLNode *hp,*tp;}ptr;//ptr是表节点的指针域,ptr.hp和ptr.tp分别指向表头和表尾
};
}*GList //广义表类型
//---广义表的扩展线性链表存储结构---//
typedef enum{ATOM,LIST}ElemTag; //ATOM == 0:原子,LIST == 1:字表
typedef struct GLNode{
ElemTag tag; //公共部分,用于区分原子节点和表节点
union share{ //原子节点和表节点的联合部分
AtomType atom; //atom是原子节点的值域,AtomTpye由用户定义
struct GLNode *hp; //表节点的表头指针
};
struct GLNode *tp; //相当于线性链表的next,指向下一个元素节点
}*GList //广义表类型(扩展的线性链表)
广义表的首尾链表存储结构和扩展线性链表存储结构
最新推荐文章于 2023-05-05 17:35:05 发布