Tepi berwajaran boleh disimpan dalam senarai bersebelahan.
Terdapat dua jenis graf berwajaran: berwajaran puncak dan berwajaran tepi. Dalam graf berwajaran bucu, setiap bucu diberi pemberat. Dalam graf berwajaran tepi, setiap tepi diberi pemberat. Daripada kedua-dua jenis, graf berwajaran tepi mempunyai lebih banyak aplikasi. Bab ini mempertimbangkan graf berwajaran tepi.
Graf berwajaran boleh diwakili dengan cara yang sama seperti graf tidak berwajaran, kecuali anda perlu mewakili pemberat pada tepi. Seperti graf tidak berwajaran, bucu dalam graf berwajaran boleh disimpan dalam tatasusunan. Bahagian ini memperkenalkan tiga perwakilan untuk tepi dalam graf berwajaran.
Mewakili Tepi Berwajaran: Tatasusunan Tepi
Tepi berwajaran boleh diwakili menggunakan tatasusunan dua dimensi. Sebagai contoh, anda boleh menyimpan semua tepi dalam graf dalam Rajah di bawah (a) menggunakan tatasusunan dalam Rajah di bawah (b).
Berat boleh terdiri daripada sebarang jenis: Integer, Double, BigDecimal dan sebagainya. Anda boleh menggunakan tatasusunan dua dimensi daripada jenis Objek untuk mewakili tepi berwajaran seperti berikut:
Objek[][] tepi = {
{Integer baharu(0), Integer baharu(1), SomeTypeForWeight(2)} baharu,
{Integer baharu(0), Integer baharu(3), SomeTypeForWeight(8)} baharu,
...
};
Matriks Bersebelahan Wajaran
Andaikan graf mempunyai n bucu. Anda boleh menggunakan matriks n * n dua dimensi, katakan berat, untuk mewakili pemberat pada tepi. berat[i][j] mewakili berat di tepi (i, j). Jika bucu i dan j tidak disambungkan, berat[i][j] ialah null. Sebagai contoh, pemberat dalam graf dalam Rajah di atas (a) boleh diwakili menggunakan matriks bersebelahan seperti berikut:
Senarai Bersebelahan
Cara lain untuk mewakili tepi ialah dengan mentakrifkan tepi sebagai objek. Kelas AbstractGraph.Edge ditakrifkan untuk mewakili kelebihan tidak berwajaran dalam AbstractGraph.java. Untuk tepi berwajaran, kami mentakrifkan kelas WeightedEdge seperti yang ditunjukkan dalam kod di bawah.
AbstractGraph.Edge ialah kelas dalaman yang ditakrifkan dalam kelas AbstractGraph. Ia mewakili tepi daripada bucu u kepada v. WeightedEdge memanjangkan AbstractGraph.Edge dengan sifat baharu berat.
Untuk mencipta objek WeightedEdge, gunakan WeightedEdge(i, j, w) baharu, dengan w ialah berat di tepi (i , j). Selalunya anda perlu membandingkan berat tepi. Atas sebab ini, kelas WeightedEdge melaksanakan antara muka Setanding.
Untuk graf tidak berwajaran, kami menggunakan senarai bersebelahan untuk mewakili tepi. Untuk graf berwajaran, kami masih menggunakan senarai bersebelahan, senarai bersebelahan untuk bucu dalam graf dalam Rajah di bawah a boleh diwakili seperti berikut:
java.util.List
senarai[i] menyimpan semua tepi bersebelahan dengan bucu i.
Untuk fleksibiliti, kami akan menggunakan senarai tatasusunan dan bukannya tatasusunan bersaiz tetap untuk mewakili senarai seperti berikut:
Senaraikan
Atas ialah kandungan terperinci Mewakili Graf Berwajaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

JVMmanagesgarbagecollectionacrossplatformseffectivelybyusingagenerationalapproachandadaptingtoOSandhardwaredifferences.ItemploysvariouscollectorslikeSerial,Parallel,CMS,andG1,eachsuitedfordifferentscenarios.Performancecanbetunedwithflagslike-XX:NewRa

Kod Java boleh dijalankan pada sistem pengendalian yang berbeza tanpa pengubahsuaian, kerana falsafah "Write Once, Run, Everywhere" Java dilaksanakan oleh Java Virtual Machine (JVM). Oleh kerana perantara antara bytecode Java yang disusun dan sistem operasi, JVM menerjemahkan bytecode ke dalam arahan mesin tertentu untuk memastikan program itu dapat dijalankan secara bebas di mana -mana platform dengan JVM dipasang.

Penyusunan dan pelaksanaan program Java mencapai kemerdekaan platform melalui Bytecode dan JVM. 1) Tulis kod sumber Java dan menyusunnya ke dalam bytecode. 2) Gunakan JVM untuk melaksanakan bytecode pada mana -mana platform untuk memastikan kod berjalan di seluruh platform.

Prestasi Java berkait rapat dengan seni bina perkakasan, dan memahami hubungan ini dapat meningkatkan keupayaan pengaturcaraan dengan ketara. 1) JVM menukarkan bytecode Java ke dalam arahan mesin melalui kompilasi JIT, yang dipengaruhi oleh seni bina CPU. 2) Pengurusan memori dan koleksi sampah dipengaruhi oleh RAM dan kelajuan bas memori. 3) Ramalan cache dan cawangan mengoptimumkan pelaksanaan kod Java. 4) Pemprosesan pelbagai threading dan selari meningkatkan prestasi pada sistem multi-teras.

Menggunakan perpustakaan asli akan memusnahkan kemerdekaan platform Java, kerana perpustakaan ini perlu dikumpulkan secara berasingan untuk setiap sistem operasi. 1) Perpustakaan asli berinteraksi dengan Java melalui JNI, menyediakan fungsi yang tidak dapat dilaksanakan secara langsung oleh Java. 2) Menggunakan perpustakaan asli meningkatkan kerumitan projek dan memerlukan menguruskan fail perpustakaan untuk platform yang berbeza. 3) Walaupun perpustakaan asli dapat meningkatkan prestasi, mereka harus digunakan dengan berhati-hati dan menjalankan ujian silang platform.

JVM Mengendalikan Perbezaan API Sistem Operasi melalui JavanativeInterface (JNI) dan Perpustakaan Standard Java: 1. JNI membenarkan kod Java untuk memanggil kod tempatan dan terus berinteraksi dengan API Sistem Operasi. 2. Perpustakaan Standard Java menyediakan API bersatu, yang dipetakan secara dalaman kepada API sistem operasi yang berbeza untuk memastikan kod tersebut berjalan di seluruh platform.

modularitydoesnotdirectlyaffectjava'splatformindected.java'splatformindectenceismaintybythejvm, butmodularityinfluencesapplicationstructureandManagement, indirectlyimpactingplatformindect.1) DeploymentandmentandmentweMbecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecom

BytecodeinjavaistheintermediaterepresentationThateNableSplatformindant.1) javacodeiscompiledintobytecodestoredin.classfiles.2)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini
