c++ベースのチェーンテーブルノードの挿入と削除

1632 ワード

ノードを順番に挿入する各ノードが挿入される場合、順番に挿入されるので、最終的にこのチェーンテーブルは順番に並べられます.
どのように順番に挿入しますか?方法:挿入時にチェーンテーブルを巡回し、IDの値を比較し、ターゲット位置を見つけます.注:チェーンテーブル挿入のコア操作は、ターゲットの位置を見つけ、前のノードpreを記録することです.新しいノードはpreの後ろに直接掛けておけばいいので、この操作は簡単です.
obj->next=pre->next;
pre->next=obj;
int insert(Student* obj)
{
   Student* cur=m_head.next;//    current
   Student* pre=&m_head;//     previous
   while(cur)
   {
      if(obj->id<cur->id)//      
      break;
      pre=cur;
      cur=cur->next;//        
   }
   //   pre     
   obj->next=pre->next;
   pre->next=obj;
   return 0;
}

ノードの削除:pre->next=obj->next;free(obj);