遍历法原程序是指用于访问数据结构中所有成员的算法。以下是一个简单的遍历程序示例,使用Java编写,用于遍历二叉树:
```java
public class Traversal {
public static void main(String[] args) {
// 创建一棵树
TreeNode root = new TreeNode("G", null, null);
root.left = new TreeNode("B", new TreeNode("D", null, null), new TreeNode("E", null, null));
root.right = new TreeNode("C", null, new TreeNode("F", null, null));
// 先序遍历
System.out.println("先序遍历:");
preOrderTraversal(root);
}
// 先序遍历方法
public static void preOrderTraversal(TreeNode node) {
if (node == null) {
return;
}
System.out.print(node.value + " ");
preOrderTraversal(node.left);
preOrderTraversal(node.right);
}
}
// 定义树节点
class TreeNode {
String value;
TreeNode left;
TreeNode right;
TreeNode(String value, TreeNode left, TreeNode right) {
this.value = value;
this.left = left;
this.right = right;
}
}
```
在这个示例中,我们定义了一个简单的二叉树,并使用先序遍历法(根-左-右)遍历这棵树。遍历程序通过递归或迭代的方式访问数据结构中的每个元素,确保没有遗漏任何元素,同时也不对任何元素进行重复访问。
遍历方法有多种实现方式,包括:
基于计数器的for循环遍历:
遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后,停止。
迭代器遍历:
Iterator取缔了显式的遍历计数器,可以直接按位置访问数据。基于顺序存储集合的Iterator可以直接按位置访问数据,而基于链式存储集合的Iterator需要保存当前遍历的位置,然后根据当前位置来向前或者向后移动指针。
这些遍历方法可以应用于不同的数据结构,如数组、链表、树、图等。选择哪种遍历方法取决于具体的应用场景和数据结构的特性。