گراف (ساختار داده): تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه، replaced: ها ← ‌ها (17)، های ← ‌های (5)، می تواند ← می‌تواند با ویرایشگر خودکار فارسی
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی
خط ۲:
در [[علوم رایانه]] یک '''گراف'''، داده‌ساختاری انتزاعی است که به صورت گراف [[گراف جهت‌دار|جهت دار]] و [[گراف (ریاضی)|بدون جهت]] پیاده سازی می‌شود و . هدفش به کارگیریِ مفهوم [[گراف]] از [[ریاضیات]] و به خصوص نظریه گراف است.
 
یک '''[[داده ساختار]] گراف''' اساساً از یک مجموعهٔ متناهیِ [[زوج مرتب|زوج‌های مرتب]] موسوم به '''یال''' شامل واحدهایی به نام '''رأس''' یا '''گره''' تشکیل می‌شود؛ همان‌طور که در ریاضیات به ازای یک یال (u,v) می‌گوییم که u به v می‌رود یا u و v مجاورند. همچنین میتوانمی‌توان به هر یال یک گراف یک عدد نسبت داد که در این صورت [[گراف وزن‌دار|گراف وزن دار]] بوجود می آید .
 
== عملیات ها ==
خط ۹:
* مجاورت (''G'', ''x'', ''y''): امتحان اینکه آیا یک یال از رأس x به رأس y وجود دارد؛
* همسایه‌ها (''G'', ''x''):لیست تمام رأس‌ها را به طوری که یک یال از رأس x به رأس y وجود دارد؛
* درج راس(''G'', ''x'') :راس x را در صورت عدم وجود اضافه می کند؛می‌کند؛
* حدف راس (''G'', ''x'') :راس x را در صورت وجود حذف می کندمی‌کند ؛
* درج یال (''G'', ''x'', ''y''): یک یال از رأس x به رأس y اضافه می کندمی‌کند ؛
* حذف یال (''G'', ''x'', ''y''): یال از رأس x به رأس y را در صورت وجود حذف می کند؛می‌کند؛
* گرفتن ارزش راس (''G'', ''x''): مقدار مربوط به رأس x را برمی گرداند؛
* مقداردهی راس (''G'', ''x,v'') :مقدار مربوط به رأس x را v قرار می دهد؛می‌دهد؛
 
در [[گراف وزن‌دار|گراف وزن دار]] دستورات زیر نیز وجود دارد :
 
* گرفتن ارزش یال (''G'', ''x,y''):مقدار مربوط به یال گذرنده از (x، y) را باز می گرداند؛
* مقدار دهی یال (''G'', ''x'', ''y'', ''v''): مقدار مربوط به لبه (x، y) را به v تنظیم می کند؛می‌کند؛
 
== نمایش گراف‌ها ==
ساختار داده‌های مختلفی برای نمایش گراف‌ها در عمل استفاده می شودمی‌شود :
 
=== '''[[لیست مجاورت|لیست‌ مجاورت]]''' <ref>{{Cite journal|last=Goodrich|first=Michael T.|last2=Tamassia|first2=Roberto|date=2001|title=Teaching internet algorithmics|url=http://dx.doi.org/10.1145/364447.364561|journal=Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education - SIGCSE '01|location=New York, New York, USA|publisher=ACM Press|doi=10.1145/364447.364561|isbn=1581133294}}</ref> ===
راس‌ها به عنوان سوابق یا اشیا ذخیره می شوندمی‌شوند و هر رأس لیستی از رأس‌های مجاور را ذخیره می کندمی‌کند. این ساختار داده‌ها اجازه ذخیره سازیذخیره‌سازی داده‌های اضافی در رأس‌ها را می دهدمی‌دهد. داده‌های اضافی را می توانمی‌توان ذخیره کرد اگر یال‌ها نیز به عنوان اشیا ذخیره شوند، در این صورت هر رأس یال‌های حادث بر خود را ذخیره می کندمی‌کند و هر یال رأس حاد خود را ذخیره می کندمی‌کند.
 
=== '''[[ماتریس مجاورت]]''' ===
خط ۶۸:
|سوال: آیا رأس X و Y مجاور هستند؟
 
(فرض بر این است که موقعیت ذخیرهذخیره‌سازی سازی آنهاآن‌ها شناخته شده استشده‌است)
|<math>O(|V|)</math>
|<math>O(1)</math>