فرض کنیم عنصر ابتدای لیست رو با list نمایش بدیم و تمامی عناصر لیست یک id دارند. در تابع اول مقدار item به تابع ارسال میشه، یک گره ایجاد میشه و در مکان مناسب قرار میگیره(در صورت وجود) در تابع دوم فقط مکان یک گره که گره بعد از باید حذف بشه به تابع ارسال میشه.
void InsertNode(ItemType item,Node mynode)
{
Node *newnode;
Node *location;
newnode = new Node;
newnode -> data = item;
location = list;
   if(list != NULL)
  {
    while(location -> id != mynode -> id)
      location = location -> next;
    newnode -> next = location -> next;
    location -> next = newnode;
  } 
  else
    return;
}
void DeleteNode(Node mynode)
{
Node *location;
Node *temp;
location = list;
   if(list != NULL)
  {
    while(location -> id != mynode -> id)
      location = location -> next;
    location = location -> next;
    temp = location;
    location = location -> next;
    delete temp;
  } 
  else
    return;
}