如何解决使用链接列表数据结构实现通用树
| 我正在尝试生成以下常规树: root
|
----------------
| |
child child
|
----
|
child
|
-------------
| | |
child child child
我计划使用两个类,一个存储父节点元素(Tree类),另一个实现用于存储子项的链接列表(Single_linked_list)。
我对Tree类的定义是:
template <class Object>
class Tree
{
private:
Object node_val; // this is stored in node of tree
Single_linked_list< Tree<Object> * > children;
public:
// accessors and mutators
...
}
我只是想确认Single_linked_list< Tree<Object> * > children;
里面应该有ѭ3because,因为在c ++中,这是指定它为指针的方法,它指向所有子项的linked_list的开始?
请让我知道我对那行代码的解释是否正确。
解决方法
如果我理解您的问题,您想知道Single_linked_list类模板参数的含义。
您的声明:
在c ++中[
*
]是指定它为指针的方式,它指向所有子项的linked_list的开始
值得讨论。 Single_linked_list
模板类管理作为模板参数给出的类型的实例。 template参数不会更改列表的使用方式。由template参数标识的托管类型可以是内置的(如指针),也可以是类。不管模板参数是什么,我都会假设通过调用list6上的方法来访问链表的开始和遍历链表的函数。
Single_linked_list< SomeClassOrType > my_list;
putThingsOnList( &my_list );
my_list.goToFirst();
while( !my_list.hasNext() )
{
SomeClassOrType &o = children.getCurrent();
children.goToNext();
}
上面引用的语句的第一部分是正确的:*
指定指针类型。您的陈述的第二部分是我不同意的地方:template参数与linked_list开头的想法无关。
希望您觉得我的答案很有价值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。