مفهوم الرسم البياني
الرسم البياني هو توسيع الشجرة في الخوارزمية. الشجرة هي بنية بيانات من أعلى إلى أسفل. تحتوي العقد على عقدة الأصل (باستثناء عقدة الجذر) ، مرتبة من أعلى إلى أسفل. لا يحتوي الرسم البياني على مفهوم لعقد الأب والابن ، والعقد في الرسم البياني كلها علاقات متساوية ، مما يجعل النتيجة أكثر تعقيدًا.
رسم بياني غير موجه موجه
الشكل G = (v ، e) ، حيث يمثل V القمة ، تمثل E حافة الحافة ، والحافة عبارة عن زوج نقطة ثابتة (u ، v) ، حيث (u ، v) ∈V.
في اليومين الماضيين ، واجهت خوارزمية حول الرسوم البيانية. لقد بحثت عبر الإنترنت لفترة طويلة ولم أتمكن من العثور على إصدار Java من الرسوم البيانية في بنية البيانات وعملياتها ذات الصلة. لذلك وجدت إصدار Java من كتاب بنية البيانات وقراءته. فيما يلي ملخص لتخزين الرسم البياني غير الموجود وتجاوز أولوية العمق للرسوم البيانية التي تم تجميعها بناءً على التفسير في الكتاب. ومع ذلك ، يمكن أن يعبر هذا العبور الرسم البياني المتصل فقط ، ولجرير الرسم البياني غير المتصل ، لا يزال يتعين تعديله. آمل أن يكون مفيدًا لأولئك المحتاجين.
package com.homework ؛/*** حدد فئة المكدس*/class stackx {private final int size = 20 ؛ private int [] st ؛ private int top ؛ // تهيئة المكدس public stackx () {st = new int [size] العنصر العلوي من الذروة العامة int public () {return st [top] ؛} // حدد ما إذا كانت المكدس فارغًا منطقيًا عامًا isEmpty () {return (top ==-1) ؛}/** * تحديد فئة العقدة في الرسم البياني * char admale * adled = lab lab ؛ wasvisited = false ؛}}/** * حدد فئة الرسم البياني * Author Administrator * */class Graph {private Final int num = 20 ؛ private Vertex Vertexlist [] graph () {vertexlist = new vertex [num] ؛ adjmat = new int [num] [num] ؛ nverts = 0 ؛ for (int i = 0 ؛ i <num ؛ Vertex (LAB) ؛} // أضف ميزة بين العقدتين المضافة العامة المضافة (int start ، int end) {adjmat [start] [end] = 1 ؛ adjmat [end] [start] = 1 ؛} // إخراج عقدة معينة void displayvertex (int v) {system.Out.print getAdJunvisitedVertex (int v) {for (int j = 0 ؛ j <nverts ؛ j ++) {if (adjmat [v] [j] == 1 && vertexlist [j] dfs () {vertexlist [0] .wasvisited = true ؛ displayVertex (0) ؛ thestack = new stackx () ؛ thestack.push (0) ؛ بينما (! else {vertexlist [v] .wasvisited = true ؛ displayVertex (v) ؛ thestack.push (v) ؛}} لـ (int j = 0 ؛ j <nverts ؛ j ++) vertexlist [j] .wasvisited = false ؛}} الفئة العامة graphconnect {public static void main (string [] args) {{graph thegraph = new grap () ؛ thegraph.addvertex ('a') ؛ thegraph.addvertex ('b') ؛ thegraph.addvertex ('c') ؛ thegraph.addvertex ('d') ؛ thegraph.addvertex ('e') ؛ thegraph.addedge (0 ، 1) ؛ // ab thegraph.addedge (1 ، 2) ؛ // bc thegraph.addedge (0 ، 3) ؛ // ad thegraph.addedge (3 ، 4) ؛ // de thegraph.addedge (2 ، 4) ؛ تمت زيارته: ") ؛ thegraph.dfs () ؛ system.out.println () ؛}}} نتائج تشغيل البرنامج:
الطلب الذي تمت زيارته: Abced
لخص
ما ورد أعلاه هو كل التفسير التفصيلي لبرنامج تشغيل التخزين و DFS لبرمجة Java برمجة الرسم البياني غير الموجود. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
تقوم برمجة Java بتنفيذ البحث عن العمق القائم على الرسم البياني والبحث الأول عن الرمز الكامل
مثال رمز تنفيذ Java على العمق الأول والاستعمار
رمز تحويل برمجة Java لهييّتين لقائمة الأشجار
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!