Ada beberapa algoritme, seperti Algoritma Edmond, atau Algoritma Boruvka yang mengharuskan pemrogram membuat grafik yang diperoleh dengan mengontraksikan beberapa node menjadi satu node, dan kemudian mengembangkannya kembali.
Gambaran formal kontraksi adalah sebagai berikut:
Misalkan G
adalah graf dengan simpul V
dan sisi E
. Misalkan C
menjadi komponen terhubung dari G
. Kontraksi G
terhadap C
didefinisikan sebagai grafik pada V - nodes(C) + C*
, dimana C*
adalah "supernode" yang mewakili komponen yang dikontrak. Tepi yang tidak melibatkan simpul di C
adalah apa adanya. Tepi yang memiliki titik akhir di C
kini terhubung ke C*
.
Tidak jelas bagi saya bagaimana menerapkan primitif algoritmik menggunakan representasi seperti daftar kedekatan.
Apa cara yang elegan dan efisien untuk merepresentasikan grafik sehingga dapat dikontrak, sambil mengingat data yang relevan untuk memperluasnya?