數據結構C語言版07

  • 單向鏈表的基本運算
    • 單向鏈表插入
      • 插入:即實現Insrt(L,x,I),將x插入表中結點ai之前的情(即前插)

在這裏插入圖片描述
第一步:先將q的後繼變爲ai的前驅
第二步:將ai-1的後繼變爲q的前驅

  • **算法思路:**調用算法Getlist(H,i-1)獲取結點ai-1的指針P(ai之前驅),然後申請一個q結點,存入x,並將其插入p結點之後,插入時的指針變換如圖所示:在這裏插入圖片描述

  • 插入:即實現Insert(L,x,i),將插入表結點ai之前的情況(即前插)

void  Linsert(link H ,datatype x,int i){
   link p,  q;
   if==0)  p=H;
   else    p=Getlist(H,i-H)//取結點ai+1的指針
   if(p==NULL)   ERROR(i);//參數i出錯
   else{
   q=(link)malloc(sizeof(linknode));//申請插入結點
   q->data=x;//存入數據
   q->next=p->next;//插入新結點
   p->next=q;
   }

    

  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章