Qraf G = (V, E) təpələr çoxluğu V və onları birləşdirən tillər çoxluğu E-dir. Şəhərlər və yollar, insanlar və dostluqlar, fayllar və asılılıqlar: hamısı qrafdır. Onunla kodda işləmək üçün əvvəlcə necə saxlayacağımızı seçməliyik.
Terminlər
- yönlü qraf:
u -> vtili yalnız bir istiqamətdədir; yönsüz: hər iki istiqamətdə; - çəkili qraf: hər tilin ədədi var (məsafə, qiymət);
- təpənin dərəcəsi onun tillərinin sayıdır; yönlü qrafda daxil olan və çıxan dərəcə ayrıca sayılır;
- yol tillərlə bağlı təpələr ardıcıllığıdır, dövr başlanğıca qayıdan yoldur, istənilən iki təpə arasında yol varsa qraf bağlıdır;
EtəxminənVqədərdirsə qraf seyrək, təxminənV²qədərdirsə sıxdır.
Üç təsvir
Qonşuluq matrisi n x n cədvəldir: u -> v tili varsa matrix[u][v] = 1. Qonşuluq siyahısı hər təpə üçün qonşuların siyahısını saxlayır. Tillər siyahısı sadəcə (u, v) cütlərinin siyahısıdır.
n = 5
edges = [(0, 1), (0, 2), (1, 2), (1, 3), (3, 4)]