我有一个用PHP实现的自己的Tree对象。假设我们有一棵树,如:PHP树实现:访问父节点
Root |_ Folder 1 |_ Folder 2 |_ Subfolder 1
我可以访问Subfolder 1
这样的:
$sf1 = $Tree->NavigateTo("Folder 2/Subfolder 1")
而且$sf1
将举行Subfolder 1
节点。我想实现一个GetParentNode()
方法,使
$parent = $sf1->GetParentNode() // Equivalent to Folder 2
这是树的定义:
class JaxpTree
{
/**
* @var JaxpTree|JaxpTreeNode Array of Tree nodes.
* @access public
*/
public $Nodes;
/**
* @var JaxpList Array of Tree items.
* @access public
*/
public $ItemList;
}
它的工作原理通过嵌套树对象,因此,子文件夹1还可以访问,如:
$Tree->Nodes["Folder 2"]->Nodes["Subfolder 1"]
这将是TreeNode对象:
/**
* Represents a Tree node.
*
* @package Jaxp.Trees
* @subpackage TreeNode
* @since 1.0
*/
class JaxpTreeNode
{
/**
* @var int Node id.
* @access public
*/
public $Id;
/**
* @var JaxpTreeNodeAttributes Contains the node's attributes.
* @access public
*/
public $Attributes;
}
如何在这里实现父节点访问?
解决解决方案是增加包含到父节点的参考的父属性。 谢谢!
所以,我要补充一个“父”属性与参考。 – 2010-02-28 20:00:52
@Joel是的,正好 – 2010-02-28 20:02:06