Yer verimliliği umursadığınız her şey varsa o zaman sıkıştırılmış bir veri yapısı en iyi olurdu - ama elbette bu erişim veya güncelleme için çok verimli değil .....
Grafiğinizin nispeten az sayıda düğümü varsa ve oldukça yoğunsa (diyelim ki tüm olası bağlantıların en az% 5'i var), kenar listelerini kullanmak yerine bir bitişiklik matrisi oluşturmanın daha fazla alan etkili olduğunu görebilirsiniz . Bu, olası (yönlendirilmiş) bağlantı başına yalnızca bir bit ve n düğümünüz olduğunda toplam n * n bit gerektirir.
Aksi takdirde, komşu bağlantıları kullanmanız gerekiyorsa, bu, saklamanız gereken minimum bilgi içeriği olduğundan bağlantı başına bir referanstan daha kolay bir şekilde daha iyi yapamazsınız. Geri bağlantılar istiyorsanız, iki kat daha fazla bağlantıya ihtiyacınız olacaktır.
Bunun üzerinde deneyebileceğiniz bazı püf noktaları var. Örneğin, bağlantı alt kümelerini paylaşmayı deneyebilirsiniz (A ve B, C, D, E'nin her birine atıfta bulunuyorsa, yalnızca C, D, E bağlantılarının listesini bir kez saklayın .....). Ancak bu oldukça hızlı bir şekilde karmaşıklaşacak ve çoğu durumda çabaya değeceğinden şüpheliyim.
Başka bir hile - grafiğinizin makul sayıda düğüme sahip olduğu varsayılarak, kesinlikle indeksleyerek yerden tasarruf edersiniz - örneğin, tam bir işaretçi / referans yerine 16 bit düğüm dizin numarası kullanarak.