Level order traverse of a tree
Page 1 of 1
Level order traverse of a tree
Using DFS:
void printLevel(BinaryTree *p, int level) {
if (!p) return;
if (level == 1) {
cout << p->data << " ";
} else {
printLevel(p->left, level-1);
printLevel(p->right, level-1);
}
}
void printLevelOrder(BinaryTree *root) {
int height = maxHeight(root);
for (int level = 1; level <= height; level++) {
printLevel(root, level);
cout << endl;
}
}
Using one queue:
public void levelOrderOutput(TreeNode<E> root){
if(root==null)
return;
ArrayList<TreeNode<E>> queue=new ArrayList<TreeNode<E>>();
queue.add(root);
while(!queue.isEmpty()){
TreeNode<E> head=queue.remove(0);
System.out.println(head.data()+" ");
if(ehad.left!=null)
queue.add(head.left);
if(head.right!=null)
queue.add(head.right);
}
}
void printLevel(BinaryTree *p, int level) {
if (!p) return;
if (level == 1) {
cout << p->data << " ";
} else {
printLevel(p->left, level-1);
printLevel(p->right, level-1);
}
}
void printLevelOrder(BinaryTree *root) {
int height = maxHeight(root);
for (int level = 1; level <= height; level++) {
printLevel(root, level);
cout << endl;
}
}
Using one queue:
public void levelOrderOutput(TreeNode<E> root){
if(root==null)
return;
ArrayList<TreeNode<E>> queue=new ArrayList<TreeNode<E>>();
queue.add(root);
while(!queue.isEmpty()){
TreeNode<E> head=queue.remove(0);
System.out.println(head.data()+" ");
if(ehad.left!=null)
queue.add(head.left);
if(head.right!=null)
queue.add(head.right);
}
}
yangwenzhou- Posts : 5
Join date : 2011-09-23
Similar topics
» Print Level order by level
» Tree Level by Level, LinkedList
» Iterative way of in order traversal
» Write a program to determine if a binary tree is well ordered
» To get mirror image of a binary tree
» Tree Level by Level, LinkedList
» Iterative way of in order traversal
» Write a program to determine if a binary tree is well ordered
» To get mirror image of a binary tree
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|