广义表的定义:
广义表是非线性的结构,是n个元素的有限序列。
举例:A=(a,b,(c,d))
我们先定义它的结构:
(1)它有三种节点,头节点、值节点、子表节点。
(2)两种指向下一节点的指针:指向下一值值节点的指针_next,指向子表节点的指针_sublink.
(3)_next与_sublink只有一种
enum Type//用枚举形式来定义广义表中三种节点类型 { HEAD, //头类型 VALUE,//值类型 SUB,//子表类型 }; struct GeneralizedNode { Type _type;//类型 GeneralizedNode* _next;//指向下一节点的指针 union { int _value;//一个节点下一节点可能是值节点,也可能是子表节点 GeneralizedNode* _sublink; }; GeneralizedNode(Type type) :_next(NULL) , _type(type) {} };
本文出自 “C语言100-200素数” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1764567
原文:http://10740184.blog.51cto.com/10730184/1764567