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.