import java.util.*;
class category{
String name;
int id;
int pid;
category(String name,int id,int pid){
this.name=name;
this.id=id;
this.pid=pid;
}
}
public class digui {
String res="";
public String tree(Collection co,int pid){
Iterator<category> it=co.iterator();
while(it.hasNext()){
category ct=it.next();
if(ct.pid==pid){
int id=ct.id;
res+=Integer.valueOf(id)+",";
tree(co,id);
}
}
return res;
}
public static void main(String[] args){
Collection<category> co=new ArrayList<category>();
co.add(new category("食物",1,0));
co.add(new category("植物",2,0));
co.add(new category("水果",3,1));
co.add(new category("树",4,2));
co.add(new category("苹果",5,3));
co.add(new category("松树",6,4));
co.add(new category("饮料",7,1));
co.add(new category("红苹果",8,5));
digui dg=new digui();
String ress=dg.tree(co, 0);
System.out.println(ress);
}
}
/*
*输出结果:1,3,5,8,7,2,4,6,
*/
用一颗树来表示就能看出它明显是一次前序遍历
0
1 2
3 7 4
5 6
8
分享到:
- 2008-12-11 14:29
- 浏览 987
- 评论(8)
- 论坛回复 / 浏览 (8 / 2756)
- 查看更多
相关推荐
前序遍历是二叉树遍历的一种方式,其顺序为“根节点 -> 左子树 -> 右子树”。具体而言,在遍历过程中,首先访问根节点,然后递归地遍历左子树,最后递归地遍历右子树。对于非递归的前序遍历,通常会利用栈来辅助实现...
在计算机科学中,树是一种非常重要的数据结构,它模拟了现实世界中许多层次关系的问题。树的遍历是理解和操作树的关键技术之一,其中前序遍历是最基础且常用的方法。本文将深入探讨树的前序遍历算法,并结合JAVA脚本...
前序遍历(Preorder Traversal)是二叉树遍历的一种方法,它按照“根-左-右”的顺序访问每个节点。即首先访问根节点,然后递归地访问左子树,最后访问右子树。这种遍历方式可以方便地用字符串表示,其中空格代表没有...
本话题主要关注的是“前序遍历”,这是一种重要的遍历策略,常用于复制或打印树的结构。 **前序遍历**(Preorder Traversal)的规则如下: 1. 首先访问根节点。 2. 然后递归地访问左子树。 3. 最后递归地访问右子...
二叉树的前序遍历是计算机科学中的一种基础算法,主要用于访问二叉树中的所有节点。在前序遍历中,访问顺序是先根节点,然后遍历左子树,最后遍历右子树。这种遍历方式在数据结构的学习和编程实践中有着广泛的应用。...
二叉树遍历是计算机科学中一种重要的数据结构操作,主要应用于树形数据结构的处理。在软考中,理解并能熟练应用二叉树的遍历方法是必不可少的技能。这里我们详细讨论前序遍历、中序遍历、后序遍历以及层次遍历这四种...
因此,非递归前序遍历提供了另一种有效的解决方案。 非递归前序遍历通常使用栈来辅助完成。以下是其基本步骤: 1. 创建一个空栈,将根节点压入栈中。 2. 当栈不为空时,执行以下操作: a. 弹出栈顶元素,访问该...
实验分析显示,递归是构建和遍历二叉树的一种强大工具,而栈则用于处理非线性遍历的问题,尤其是在前序遍历中处理右子树。通过这次实验,我们可以深入理解递归算法的工作原理以及数据在栈中的进出过程,这对理解...
二叉树是一种常见的数据结构,在计算机科学中被广泛应用于多种算法和数据处理任务中。它由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树可以用来实现多种功能,如搜索、排序、表达式解析...
**前序遍历** 是一种遍历二叉树的方法,其顺序为:首先访问根节点,然后遍历左子树,最后遍历右子树。递归方法是最直观的理解方式,但递归在处理大规模数据时可能会导致栈溢出。因此,非递归(迭代)方法在这种情况...
前序遍历作为一种有效的树遍历方法,被广泛应用于解决此类问题,因为它能提供更好的性能和灵活性。本文将深入探讨前序遍历树模型,以及如何利用它来优化无限分类的处理。 首先,我们来看一下无限分类的需求。在许多...
在Python编程语言中,二叉树是一种非常重要的数据结构,它具有两个子节点,分别称为左子节点和右子节点。二叉树广泛应用于搜索、排序、文件系统、图形处理等多个领域。本教程将深入探讨如何在Python中实现二叉树的...
前序遍历是二叉树遍历的一种方法,顺序为“根-左-右”。在前序遍历中,我们首先访问根节点,然后递归地对左子树进行前序遍历,最后对右子树进行前序遍历。在非递归实现中,可以使用栈来辅助完成。 汇编语言是计算机...
前序遍历是一种访问二叉树节点的方式,其顺序是:根节点 -> 左子树 -> 右子树。这种遍历方式常用于复制或打印一棵树的结构。例如,对于以下二叉树: ``` 1 / \ 2 3 / \ / \ 4 5 6 7 ``` 前序遍历的结果是:`1 ...
2. **递归左子树**:如果当前节点的左子树不为空,则递归调用前序遍历函数处理左子树。 3. **递归右子树**:如果当前节点的右子树不为空,则递归调用前序遍历函数处理右子树。 递归方法的Java代码实现如下: ```...
前序遍历是二叉树遍历的一种,它按照“根-左-右”的顺序访问树中的每个节点。对于满二叉树,前序遍历能够按照层次顺序逐层访问节点,即从第一层的根节点开始,再到第二层的两个子节点,以此类推。前序遍历通常使用...
二叉树是一种特殊的树结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。在处理二叉树时,有三种经典的遍历方法:前序遍历、中序遍历和后序遍历。 1. **前序遍历**:前序遍历的顺序是“根-左-右”。在...
前序遍历是树遍历的一种,按照“根-左-右”的顺序访问树的每一个节点。在非递归算法中,我们通常会利用栈来实现这一过程,因为它提供了后进先出(LIFO)的特性,非常适合处理分支结构的问题。 下面是非递归前序遍历...
3. 前序遍历:前序遍历是一种遍历方式,先访问当前节点,然后递归地访问左子节点和右子节点。其顺序是:当前节点 -> 左子节点 -> 右子节点。 4. 中序遍历:中序遍历是一种遍历方式,先访问左子节点,然后访问当前...
链式二叉树是一种数据结构,它以节点的形式存储数据,并通过指针连接这些节点,形成树状结构。在二叉树中,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的操作主要包括创建、遍历、销毁以及计算树...