Svaki element ima pokazivac na svoj prethodni i sledeci element i ti njih prilikom ubacivanja novog elementa trebas da promenis tako da pokazuju na (novi) ispravni element.
Recimo da imas listu A B C i hoces da ubacis element D tako da lista posle ubacivanja bude A B D C.
Pre ubacivanja, B.sl pokazuje na C, C.pr pokazuje na B.
Prilikom ubacivanja trebas ovo da izmenis u listi:
1) B.sl treba da pokazuje na D
2) D.pr na B
3) D.sl na C
4) C.pr na D.
To radis ovako:
Code:
tr^.pr^.sl := novi; // 1
novi^.pr := tr^.pr; // 2
novi^.sl := tr; // 3
tr^.pr := novi; // 4
Jednostavno zamisli listu elemenata u glavi, kada ubacis novi element negde izmedju njih, trebas da mu setujes pokazivace na prethodni/sledeci element koji se nalaze oko njega, kao i da elementu pre njega promenis pokazivac na sledeci element (koji treba da pokazuje na novi element) i elementu posle njega promenis pokazivac na prethodni element, da pokazuje takodje na novi element.