伪代码写出树的先根遍历算法
答案:3 悬赏:10 手机版
解决时间 2021-03-19 22:36
- 提问者网友:遮云壑
- 2021-03-19 13:24
伪代码写出树的先根遍历算法
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-03-19 14:31
void traverse( Node root)
{
if( root == null)
return;
deal_with root;
traverse( root.left);
traverse( root.right);
}
{
if( root == null)
return;
deal_with root;
traverse( root.left);
traverse( root.right);
}
全部回答
- 1楼网友:千夜
- 2021-03-19 16:39
set a = new hashset();再用iterator来遍历就行
- 2楼网友:千杯敬自由
- 2021-03-19 15:42
function display_tree($root)
{
// 得到根节点的左右值
$result = mysql_query('SELECt lft, rgt FROM tree '.'WHERe name="'.$root.'";');
$row = mysql_fetch_array($result);
// 准备一个空的右值堆栈
$right = array();
// 获得根基点的所有子孙节点
$result = mysql_query('SELECt name, lft, rgt FROM tree '.
'WHERe lft BETWEEN '.$row['lft'].' AND '.
$row['rgt'].' ORDER BY lft ASC;');
// 显示每一行
while ($row = mysql_fetch_array($result))
{
// only check stack if there is one
if (count($right)>0)
{
// 检查我们是否应该将节点移出堆栈
while ($right[count($right)-1]<$row['rgt'])
{
array_pop($right);
}
}
// 缩进显示节点的名称
echo str_repeat(' ',count($right)).$row['name']."n";
// 将这个节点加入到堆栈中
$right[] = $row['rgt'];
}
}
{
// 得到根节点的左右值
$result = mysql_query('SELECt lft, rgt FROM tree '.'WHERe name="'.$root.'";');
$row = mysql_fetch_array($result);
// 准备一个空的右值堆栈
$right = array();
// 获得根基点的所有子孙节点
$result = mysql_query('SELECt name, lft, rgt FROM tree '.
'WHERe lft BETWEEN '.$row['lft'].' AND '.
$row['rgt'].' ORDER BY lft ASC;');
// 显示每一行
while ($row = mysql_fetch_array($result))
{
// only check stack if there is one
if (count($right)>0)
{
// 检查我们是否应该将节点移出堆栈
while ($right[count($right)-1]<$row['rgt'])
{
array_pop($right);
}
}
// 缩进显示节点的名称
echo str_repeat(' ',count($right)).$row['name']."n";
// 将这个节点加入到堆栈中
$right[] = $row['rgt'];
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯