با استفاده از تابع زیر میتونین این کارو انجام بدین:
void insert( myrec info, unsigned long id )
{
myrec *prior, *cur, *temp;
cur = first;
prior = NULL;
while( cur != NULL && cur->id != id )
{
prior = cur;
cur = cur->next;
}
if( cur == NULL )
{
return;
}
temp = new myrec;
*temp = info;
prior->next = temp;
temp->next = cur;
}
در اینجا از سه اشارهگر استفاده کرده شده است: اشارهگر cur برای اشاره به گره جاری، اشارهگر prior برای اشاره به گره قبل از cur و بالاخره اشارهگر temp برای اشاره به گره جدید. این تابع گره با id تعیین شده را پیدا کرده و گره جدید را قبل از آن درج میکند. در واقع گرهی که temp به آن اشاره دارد بین گرههای cur و prior قرار میگیرد.