Secara akademis, apa perbedaan mendasar antara struktur data Tree dan Graph? Dan bagaimana dengan pencarian berbasis pohon dan pencarian berbasis grafik?
Secara akademis, apa perbedaan mendasar antara struktur data Tree dan Graph? Dan bagaimana dengan pencarian berbasis pohon dan pencarian berbasis grafik?
Jawaban:
Pohon hanyalah bentuk terbatas dari Grafik.
Pohon memiliki arah (hubungan induk / anak) dan tidak mengandung siklus. Mereka cocok dengan kategori Grafik Asiklik Terarah (atau DAG). Jadi Pohon adalah DAG dengan batasan bahwa seorang anak hanya dapat memiliki satu orang tua.
Satu hal yang penting untuk ditunjukkan, Pohon bukanlah struktur data rekursif. Mereka tidak dapat diimplementasikan sebagai struktur data rekursif karena batasan di atas. Tetapi implementasi DAG apa pun, yang umumnya tidak rekursif, juga dapat digunakan. Implementasi Tree yang saya sukai adalah representasi peta terpusat dan tidak rekursif.
Grafik umumnya dicari lebarnya dulu atau kedalamannya dulu. Hal yang sama berlaku untuk Tree.
Dari pada menjelaskan, saya lebih suka menunjukkannya dalam gambar.
Pohon dalam waktu nyata
Grafik dalam penggunaan kehidupan nyata
Ya, peta dapat divisualisasikan sebagai struktur data grafik.
Melihat mereka seperti ini membuat hidup lebih mudah. Pohon digunakan di tempat-tempat yang kita tahu bahwa setiap node hanya memiliki satu induk. Tetapi grafik dapat memiliki beberapa pendahulu (istilah induk umumnya tidak digunakan untuk grafik).
Di dunia nyata, Anda dapat merepresentasikan hampir semua hal menggunakan grafik. Saya menggunakan peta, misalnya. Jika Anda menganggap setiap kota sebagai simpul, itu dapat dicapai dari banyak titik. Titik-titik yang mengarah ke simpul ini disebut pendahulu dan titik-titik yang akan dituju simpul ini disebut penerus.
diagram sirkuit listrik, denah rumah, jaringan komputer atau sistem sungai adalah beberapa contoh grafik lainnya. Banyak contoh dunia nyata yang dapat dianggap sebagai grafik.
Diagram teknisnya bisa seperti ini
Pohon:
Grafik:
Pastikan untuk merujuk ke tautan di bawah ini. Itu akan menjawab hampir semua pertanyaan Anda tentang pohon dan grafik.
Referensi :
Jawaban lain berguna, tetapi mereka kehilangan properti masing-masing:
Grafik tidak berarah, sumber gambar: Wikipedia
Grafik terarah, sumber gambar: Wikipedia
Bisa diarahkan atau tidak diarahkan (yang akan berlaku untuk semua tepi dalam grafik)
Sesuai Wikipedia :
Misalnya, jika simpul mewakili orang di sebuah pesta, dan ada tepi di antara dua orang jika mereka berjabat tangan, maka grafik ini tidak berarah karena setiap orang A dapat berjabat tangan dengan orang B hanya jika B juga berjabat tangan dengan A. Sebaliknya, jika ada sisi dari orang A ke orang B sesuai dengan A mengagumi B, maka grafik ini diarahkan, karena kekaguman tidak selalu timbal balik.
Ada beberapa tumpang tindih pada properti di atas. Secara khusus, dua properti terakhir diterapkan oleh properti lainnya. Tapi semuanya tetap penting untuk diperhatikan.
Dalam pohon, setiap node (kecuali node root) memiliki tepat satu node pendahulu dan satu atau dua node penerus. Ini dapat dilalui dengan menggunakan traversal In-order, Pre-order, Post-order, dan Breadth First. Pohon adalah jenis grafik khusus yang tidak memiliki siklus sehingga dikenal dengan DAG (Directed Acyclic Graph). Pohon adalah model hierarki.
Dalam grafik, setiap node memiliki satu atau lebih node pendahulu dan node penerus. Grafik dilintasi menggunakan algoritma Depth First Search (DFS) dan Breadth First Search (BFS). Grafik memiliki siklus sehingga lebih kompleks dari pada pohon. Grafik adalah model jaringan. Ada dua jenis grafik: grafik berarah dan grafik tidak berarah.
Pohon sudah jelas: mereka adalah struktur data rekursif yang terdiri dari node dengan turunan.
Peta (alias kamus) adalah pasangan kunci / nilai. Berikan peta kunci dan itu akan mengembalikan nilai yang terkait.
Peta dapat diimplementasikan menggunakan pohon, saya harap Anda tidak merasa bingung.
UPDATE: Membingungkan "grafik" untuk "peta" sangat membingungkan.
Grafik lebih kompleks daripada pohon. Pohon menyiratkan hubungan orang tua / anak rekursif. Ada cara alami untuk melintasi pohon: kedalaman-pertama, luas-pertama, tingkat-urutan, dll.
Grafik dapat memiliki jalur satu arah atau dua arah antar node, menjadi siklik atau asiklik, dll. Saya akan menganggap grafik lebih kompleks.
Saya pikir pencarian sepintas dalam teks struktur data yang layak (misalnya "Manual Desain Algoritma") akan memberikan informasi yang lebih banyak dan lebih baik daripada sejumlah jawaban SO. Saya akan merekomendasikan agar Anda tidak mengambil rute pasif dan mulai melakukan riset untuk diri Anda sendiri.
Pohon adalah bentuk khusus dari graf, yaitu graf yang terhubung secara minimal dan hanya memiliki satu jalur di antara dua simpul.
Dalam grafik dapat terdapat lebih dari satu jalur yaitu grafik dapat memiliki jalur satu arah atau dua arah (tepi) antar node
Anda juga dapat melihat detail lebih lanjut: http://freefeast.info/difference-between/difference-between-trees-and-graphs-trees-vs-graphs/
Pohon adalah digraf sedemikian rupa sehingga:
a) dengan arah tepi dihapus, itu terhubung dan asiklik
- Anda dapat menghapus asumsi bahwa itu asiklik
- Jika terbatas, Anda dapat menghapus asumsi bahwa itu terhubung
b) setiap simpul kecuali satu, akar, memiliki derajat 1
c) akar memiliki derajat 0
- Jika hanya ada banyak node yang terbatas, Anda dapat menghapus asumsi bahwa root memiliki nilai nol atau asumsi bahwa node selain root memiliki derajat 1
Referensi: http://www.cs.cornell.edu/courses/cs2800/2016sp/lectures/lec27-29-graphtheory.pdf
Dalam matematika, grafik adalah representasi dari sekumpulan objek yang beberapa pasang objeknya dihubungkan dengan link. Objek yang saling berhubungan diwakili oleh abstraksi matematika yang disebut simpul, dan tautan yang menghubungkan beberapa pasang simpul disebut tepi. [1] Biasanya, grafik digambarkan dalam bentuk diagram sebagai sekumpulan titik untuk simpul, digabungkan dengan garis atau kurva untuk tepinya. Grafik merupakan salah satu objek kajian dalam matematika diskrit.
satu simpul akar di pohon dan hanya satu orang tua untuk satu anak. Namun, belum ada konsep root node. Perbedaan lainnya adalah, pohon adalah model hierarki, sedangkan grafik adalah model jaringan.
Pohon pada dasarnya adalah graf tidak berarah yang tidak mengandung siklus, sehingga dapat dikatakan bahwa pohon merupakan graf yang lebih terbatas. Namun pohon dan grafik memiliki aplikasi yang berbeda untuk mengimplementasikan berbagai algoritma dalam pemrograman. Misalnya grafik dapat digunakan untuk model peta jalan dan pohon dapat digunakan untuk mengimplementasikan struktur data hierarki.