פונקציית הכנסה לתוך מבנה נתונים מטריצה דלילה

אשמח לעזרה בתרגיל הזה אני לא הבנתי בכלל את התרגיל,
הבנתי מה זה מטריצה דלילה אבל לא את מה שצריך לעשות.

כתבו פונקציה Insert(A,B,i,j,k) המכניסה ערך k לתוך מבנה של מטריצה דלילה הממומשת על ידי רשימות מקושרות, לתוך שורה i ועמודה j, כאשר מערך ראשי השורות נתון על ידי A ומערך ראשי העמודות נתון על ידי B.

תודה רבה.

צריך להבדיל בין שני מקרים. במקרה הראשון (הפשוט מבין השניים), אם המצביע במיקום ה-i במטריצה, מצביע על null אז אין איבר כלל ברשימה בשורה זו, או לחילופין, אם יש איבר ברשימה, אך ה-j של אותו איבר קיים, גדול מה-j שלנו. אנו נכניס את האיבר החדש x לראש הרשימה.
במקרה השני, אינדקס j החדש, הינו גדול מהאינדקס j של האיבר בראש השורה. לכן נחפש בלולאה את האיבר שהאינדקס j שלו גדול יותר מה-j החדש, ואז נדע להכניס את x במיקום אחד לפניו.
פאסודו קוד:

insert(A,B,i,j,k):
	x = new(node) 
	x->i=i
	x->j=j
	x->k=k
	if (A[i] == nil) or (A[i]->j > j):
		listInsert(A[i],x)
	else:
		y = A[i]
		z = next(y)
		while (z != nil && z->j < x->j) do:
			y = z
			z = next(z)
		listInsert(A[i],x)