广义表存储结构与实现 定义部分..里面有些不理解 10
广义表存储结构与实现用C++中的结构类型和联合类型来定义上述结点结构.enumElemtag{Atom,List};//Atom=0为单元素;List=1为子表templ...
广义表存储结构与实现
用C++中的结构类型和联合类型来定义上述结点结构.
enum Elemtag{Atom,List}; //Atom=0为单元素;List=1为子表
template<class T>
struct GLNode
{
Elemtag tag; //标志域,用于区分元素节点和表节点
union
{
T data; //data是元素节点的数据域
struct
{
GLNode *hp, *tp; //hp和tp分别指表头和表尾
}ptr;
};
};
联合类型
enum Elemtag{Atom,List};
union
ptr;
这里三个我不是很理解,请给出 //解释 或者概括一下
联合类型的有关课间,哪位朋友能够提供一下..binsheng55@163.com 另当感谢.
请看要求讲解,,这些偶知道了的. 展开
用C++中的结构类型和联合类型来定义上述结点结构.
enum Elemtag{Atom,List}; //Atom=0为单元素;List=1为子表
template<class T>
struct GLNode
{
Elemtag tag; //标志域,用于区分元素节点和表节点
union
{
T data; //data是元素节点的数据域
struct
{
GLNode *hp, *tp; //hp和tp分别指表头和表尾
}ptr;
};
};
联合类型
enum Elemtag{Atom,List};
union
ptr;
这里三个我不是很理解,请给出 //解释 或者概括一下
联合类型的有关课间,哪位朋友能够提供一下..binsheng55@163.com 另当感谢.
请看要求讲解,,这些偶知道了的. 展开
1个回答
展开全部
联合类型是为了节省空间使用的,因为广义表的元素要么是数据要么是另一个广义表而不能同时是两者,所以使用union,enum Elemtag{Atom,List}; 是表中元素的标志位,枚举类型,Atom值为0,标志元素是数据,List值为1,标志另一个广义表,整个的表元素的定义是
|标志位|数据/广义表表的指针|
通过标志位可以确定union中是数据还是广义表表的指针
广义表的定义可以参看:
http://studying.com.cn/subject/CourseWare_Detail.aspx?TeachCourseWareID=258
|标志位|数据/广义表表的指针|
通过标志位可以确定union中是数据还是广义表表的指针
广义表的定义可以参看:
http://studying.com.cn/subject/CourseWare_Detail.aspx?TeachCourseWareID=258
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询