Xác định các lá có cùng cấp trong Tree của Java
Trong bài viết này, freetuts sẽ hướng dẫn các bạn cách để xác định các lá cùng cấp của tree trong Java. Đây là bài tập căn bản giúp các bạn nắm vững kiến thức về Tree trong Java.

Dưới đây chúng ta sẽ thực hiện chương trình xác định các lá có cùng cấp của cây trong Java.
Cách xác định các lá cùng cấp của tree trong Java
Trong chương trình này, chúng ta cần xác định các lá cùng cấp của tree. Một nút được gọi là lá nếu nó không có nút con nào. Trong sơ đồ bên dưới, các nút 4, 5 và 6 là các nút lá vì chúng không có bất kỳ nút con nào. Các nút 4, 5 và 6 hiện diện ở cùng cấp độ, tức là cấp độ 2.

Thuật toán xác định các lá cùng cấp của tree trong Java
Dưới đây là một số bước cơ bản của thuật toán:
Bước 1: Khởi tạo Node là một node trong binary tree có 3 thuộc tính: data, left & right.
Bước 2: Khi một node được tạo, dữ liệu sẽ được chuyển đến thuộc tính dữ liệu của node, left và right sẽ được đặt là null.
Bước 3: isSameLevel() sẽ kiểm tra xem tất cả các lá của cây nhị phân đã cho có cùng cấp hay không.
Để các bạn dễ hình dung hơn thì bây giờ chúng ta sẽ tham khảo đoạn code sau.
Chương trình xác định các lá cùng cấp của tree trong Java
/**
* Học lập trình free tại freetuts.net
*
* @author Dell
*/
/**
* Học lập trình free tại freetuts.net
*
* @author Dell
*/
public class LeafLevel {
public static class Node{
int data;
Node left;
Node right;
public Node(int data){
this.data = data;
this.left = null;
this.right = null;
}
}
public Node root;
public static int level = 0;
public LeafLevel(){
root = null;
}
public boolean isSameLevel(Node temp, int currentLevel ) {
if(root == null){
System.out.println("Tree is empty");
return true;
}
else {
if(temp==null)
return true;
if(temp.left == null && temp.right == null) {
if(level == 0) {
level = currentLevel ;
return true;
}
else
return (level == currentLevel) ;
}
return (isSameLevel(temp.left, currentLevel + 1) && isSameLevel(temp.right, currentLevel + 1)) ;
}
}
public static void main (String[] args) {
LeafLevel bt = new LeafLevel();
bt.root = new Node(1);
bt.root.left = new Node(2);
bt.root.right = new Node(3);
bt.root.left.left = new Node(4);
bt.root.right.left = new Node(5);
bt.root.right.right = new Node(6);
System.out.println("Chương trình này được đăng tại freetuts.net");
if(bt.isSameLevel(bt.root, 1))
System.out.println("Tất cả các lá đều cùng cấp");
else
System.out.println("Tất cả các lá đều không cùng cấp");
}
} Kết quả:

Như vậy chúng ta đã hoàn thành chương trình xác định các lá cùng cấp của tree trong Java. Chúc các bạn thực hiện thành công.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng