Binary Trees sa Java Mga Halimbawa: Isang Kumpletong Gabay

Huling pag-update: 22 March of 2025
May-akda: TecnoDigital
  • Ang mga binary tree ay mga non-linear na istruktura ng data na nagpapahintulot sa data na maimbak sa magkakaugnay na mga node.
  • Nag-aalok sila ng kahusayan sa mga operasyon ng paghahanap, pagpasok at pagtanggal ng mga elemento.
  • Malawakang ginagamit ang mga ito sa mga algorithm ng pag-uuri at pagmamanipula ng data.
  • Ang pag-unawa sa istraktura nito ay mahalaga para sa pag-aaral tungkol sa iba pang mga advanced na istruktura ng data.
Mga Halimbawa ng Binary Tree sa Java

Maligayang pagdating sa aming kumpletong gabay sa mga binary tree sa mga halimbawa ng Java! Sa artikulong ito, tutuklasin namin nang detalyado ang mga konsepto ng mga binary tree, ang kanilang pagpapatupad sa Java programming language, at magbibigay ng ilang praktikal na halimbawa upang matulungan kang mas maunawaan ang paksang ito. Kung interesado ka sa mga istruktura at algorithm ng data, ang artikulong ito ay perpekto para sa iyo. Magsimula na tayo!

Ano ang Binary Trees?

Bago tayo sumisid sa mga halimbawa ng mga binary tree sa Java, mahalagang maunawaan kung ano ang eksaktong mga binary tree. Sa computer science, ang binary tree ay isang nonlinear na istraktura ng data na binubuo ng magkakaugnay na mga node. Ang bawat node ay maaaring magkaroon ng hanggang dalawang bata: isang kaliwang bata at isang kanang bata. Ang mga batang ito, sa turn, ay maaaring iba pang mga node o null.

Bakit gumagamit ng Binary Trees?

Malawakang ginagamit ang mga binary tree sa agham pangkompyuter dahil sa kanilang kahusayan at kakayahang umangkop. Ilan sa mga pangunahing dahilan sa paggamit ng mga binary tree ay:

  1. Mahusay na paghahanapNag-aalok ang mga binary tree ng mahusay na oras sa paghahanap para sa paghahanap ng mga partikular na item sa isang koleksyon ng data.
  2. Mahusay na pagpasok at pagtanggalBinibigyang-daan ng mga binary tree ang mahusay na pagpasok at pag-alis ng mga elemento sa isang istraktura ng data.
  3. Pag-uuri ng dataGinagamit din ang mga binary tree upang maayos na ayusin ang data, na maaaring maging kapaki-pakinabang sa maraming mga application.
Balanse na Binary Tree
Kaugnay na artikulo:
Balanse na Binary Tree

Ngayong nasuri na natin ang mga pangunahing kaalaman, oras na upang sumisid sa ilang praktikal na halimbawa ng mga binary tree na ipinatupad sa Java.

Mga Halimbawa ng Binary Tree sa Java

Sa seksyong ito, tutuklasin natin ang ilang konkretong halimbawa ng mga binary tree na ipinatupad sa Java programming language. Tutulungan ka ng mga halimbawang ito na maunawaan kung paano nilikha at minamanipula ang mga binary tree sa Java.

Halimbawa 1: Pangunahing Pagpapatupad ng isang Binary Tree sa Java

Upang magsimula, ipapakita namin kung paano ipatupad ang isang pangunahing binary tree sa Java gamit ang mga simpleng klase at pamamaraan. Narito ang isang halimbawa ng code:

// Importar la clase Node de Java
import java.util.*;

// Definir la clase Node
class Node {
    int key;
    Node left, right;

    public Node(int item) {
        key = item;
        left = right = null;
    }
}

// Implementar la clase BinaryTree
class BinaryTree {
    // Raíz del árbol binario
    Node root;

    // Constructor
    BinaryTree(int key) {
        root = new Node(key);
    }

    // Constructor vacío
    BinaryTree() {
        root = null;
    }

    // Método principal para ejecutar el programa
    public static void main(String[] args) {
        // Crear un nuevo árbol binario
        BinaryTree tree = new BinaryTree();

        // Asignar la raíz del árbol
        tree.root = new Node(1);

        // Crear los nodos izquierdo y derecho
        tree.root.left = new Node(2);
        tree.root.right = new Node(3);

        // Mostrar el resultado
        System.out.println("Árbol binario creado con éxito.");
    }
}

Sa halimbawang ito, lumikha kami ng binary tree na may tatlong node: isang root na may value na 1, isang kaliwang node na may value na 2, at isang right node na may value na 3. Kapag pinatakbo mo ang program, makikita mo ang mensaheng "Binary tree na matagumpay na nilikha" sa console.

  Clustering at Clustering Algorithms: Kumpletong Gabay, Mga Uri, Paggamit, at Mga Bentahe

Halimbawa 2: In-order na traversal ng isang Binary Tree sa Java

Ang inorder traversal ay isang pangkaraniwang pamamaraan na ginagamit upang tumawid sa mga node ng isang binary tree. Narito ang isang halimbawa kung paano ipatupad ang in-order traversal sa Java:

// Clase para recorrer los nodos del árbol en orden
class BinaryTree {
    // Raíz del árbol binario
    Node root;

    // Constructor y métodos de la clase BinaryTree

    // Método para recorrer los nodos en orden
    void inOrder(Node node) {
        if (node != null) {
            // Recorrer el subárbol izquierdo
            inOrder(node.left);

            // Mostrar el valor del nodo actual
            System.out.print(node.key + " ");

            // Recorrer el subárbol derecho
            inOrder(node.right);
        }
    }

    // Método principal para ejecutar el programa
    public static void main(String[] args) {
        // Crear un nuevo árbol binario
        BinaryTree tree = new BinaryTree();

        // Asignar la raíz del árbol
        tree.root = new Node(1);

        // Crear los nodos izquierdo y derecho
        tree.root.left = new Node(2);
        tree.root.right = new Node(3);

        // Mostrar el recorrido en orden
        System.out.print("Recorrido en orden: ");
        tree.inOrder(tree.root);
    }
}

Sa halimbawang ito, lumikha kami ng isang binary tree na katulad ng nakaraang halimbawa at pagkatapos ay ginagamit ang pamamaraan inOrder() upang tumawid sa mga node sa pagkakasunud-sunod. Ang resulta ay ipinapakita sa console.

Binary tree sa C
Kaugnay na artikulo:
Binary Trees sa C: Isang Kumpletong Gabay sa Baguhan

Ang mga halimbawang ito ay dapat magbigay sa iyo ng isang malinaw na ideya kung paano magtrabaho sa mga binary tree sa Java. Ngayon, tuklasin natin ang ilang mga madalas itanong na may kaugnayan sa paksang ito.

Mga Madalas Itanong tungkol sa Binary Trees sa Java

Narito ang ilang mga madalas itanong tungkol sa mga binary tree sa Java, kasama ang kanilang mga sagot:

1. Ano ang bentahe ng paggamit ng mga binary tree sa Java?

Nag-aalok ang mga binary tree ng mahusay na paghahanap, pagpasok, at pagtanggal ng mga elemento, na ginagawa itong perpekto para sa maraming application na nangangailangan ng mabilis na operasyon sa malalaking set ng data.

2. Ano ang pagkakaiba ng binary tree at binary search tree?

Ang pangunahing pagkakaiba ay nakasalalay sa kung paano nakaayos ang mga elemento sa mga puno. Sa isang binary search tree, ang mga elemento ay inayos upang ang pinakamaliit na elemento ay nasa kaliwang subtree at ang pinakamalaking elemento ay nasa kanang subtree. Nagbibigay-daan ito para sa mas mahusay na paghahanap ng mga item.

  Ang Napakahusay na Radix Sorting Algorithm

3.Paano ako makakapagpasok ng bagong node sa isang binary tree sa Java?

Upang magpasok ng bagong node sa isang binary tree sa Java, sundin ang mga hakbang na ito:

  1. Magsimula sa ugat ng puno at tingnan kung ang halaga na ilalagay ay mas mababa o mas malaki kaysa sa halaga ng kasalukuyang node.
  2. Kung mas mababa ang value, lumipat sa kaliwang subtree ng kasalukuyang node.
  3. Kung mas malaki ang value, lumipat sa kanang subtree ng kasalukuyang node.
  4. Ipagpatuloy ang prosesong ito hanggang sa makakita ka ng walang laman (null) na node sa kaukulang subtree.
  5. Gumawa ng bagong node na may value na ilalagay at italaga itong walang laman na node.
  6. Matagumpay na naipasok ang bagong node!
mga algorithm sa paghahanap
Kaugnay na artikulo:
Mga algorithm ng paghahanap: kung ano ang mga ito at kung paano gumagana ang mga ito

4. Ano ang pagiging kumplikado ng oras ng mga operasyon sa mga binary tree?

Ang time complexity ng mga operasyon sa mga binary tree ay nakadepende sa taas ng tree. Sa pinakamasamang kaso, kapag ang tree ay hindi balanse at kahawig ng isang linked list, ang taas ay maaaring katumbas ng bilang ng mga node sa tree. Sa kasong ito, ang time complexity ay magiging O(n) para sa paghahanap, pagsingit, at pagtanggal ng mga node. Gayunpaman, sa mga balanced binary tree , tulad ng mga AVL tree o mga red-black tree, ang taas ay nananatiling logarithmic, at ang mga operasyon ay may time complexity na O(log n).

5. Ano ang full binary trees?

Ang full binary tree ay isang espesyal na uri ng binary tree kung saan ang lahat ng antas, maliban sa posibleng huli, ay ganap na napuno at ang mga node ng huling antas ay nasa kaliwa hangga't maaari. Sa madaling salita, ang lahat ng mga node ay naiwang nakahanay at walang mga puwang sa pinakamalalim na antas. Ang buong binary tree ay ginagamit sa mahusay na pagpapatupad ng mga istruktura ng data tulad ng mga priyoridad na pila.

6. Paano ko matatanggal ang isang node mula sa isang binary tree sa Java?

Ang pagtanggal ng node sa isang binary tree ay maaaring maging mas kumplikado kaysa sa pagpasok nito. Narito ang mga pangkalahatang hakbang para magtanggal ng node:

  1. Magsimula sa ugat at hanapin ang node na gusto mong alisin.
  2. Kung ang node ay may mga anak, ito ang magpapasya kung paano muling ayusin ang mga node upang mapanatili ang binary tree structure.
  3. Kung ang node na tatanggalin ay isang dahon (walang mga anak), tanggalin lamang ito sa pamamagitan ng pagpapalit ng naaangkop na mga sanggunian sa magulang nito.
  4. Kung ang node na tatanggalin ay may isang anak lamang, i-link ang bata sa magulang ng node na tatanggalin.
  5. Kung ang node na tatanggalin ay may dalawang anak, hanapin ang agarang kapalit ng node (ang pinakamaliit na node sa kanang subtree) at palitan ang halaga ng node na tatanggalin ng halaga ng kapalit. Pagkatapos, alisin ang kapalit gamit ang mga hakbang sa itaas.
  6. Ang node ay matagumpay na natanggal!
Istraktura ng data sa programming
Kaugnay na artikulo:
Mga Structure ng Data sa Programming: Ang Ultimate Guide

Pakitandaan na ang mga hakbang na ito ay pangkalahatan at depende sa partikular na pagpapatupad, maaaring may mga pagkakaiba-iba sa lohika ng pagtanggal.

  Mga Maze Generator: Isang Kumpletong Gabay sa Paggawa, Pag-customize, at Pag-download

Ngayong na-explore na natin ang ilang halimbawa ng mga binary tree sa Java at sinagot ang ilang mga madalas itanong, oras na para tapusin ang artikulong ito.

Konklusyon

Sa buod, ang mga binary tree ay mga makapangyarihang istruktura ng data na ginagamit sa agham ng computer upang maayos at manipulahin ang mga koleksyon ng data nang mahusay. Sa artikulong ito, nag-explore kami ng mga praktikal na halimbawa ng mga binary tree na ipinatupad sa Java, na sumasaklaw sa lahat mula sa pangunahing paglikha hanggang sa in-order na traversal. Umaasa kami na ang mga halimbawang ito ay nagbigay sa iyo ng matatag na pag-unawa sa kung paano magtrabaho sa mga binary tree sa Java.

Tandaan na ang pagsasanay ay mahalaga upang mapabuti ang iyong mga kasanayan sa pagpapatupad at pagmamanipula ng mga binary tree sa Java. Hinihikayat ka naming mag-eksperimento sa iba't ibang mga halimbawa at hamon upang palakasin ang iyong pag-unawa at karunungan sa paksang ito.

Mga hindi binary na puno
Kaugnay na artikulo:
Mga non-binary tree: Ang rebolusyon sa mga istruktura ng data

Salamat sa pagbabasa ng aming kumpletong gabay sa mga binary tree sa mga halimbawa ng Java! Umaasa kaming nakatulong ito at nagbigay sa iyo ng mga tool na kailangan mo para magsimulang magtrabaho kasama ang mga binary tree sa sarili mong mga proyekto. Good luck sa iyong pag-aaral at paglalakbay sa programming!