C語言雙鏈表框架搭建練習(三)

2021-07-31 18:14:26 字數 1063 閱讀 9542

我們繼續實現雙鏈表插入排序,即將雙鏈表建立時進行排序操作,核心函式如下:

node* addsortdata(node*phead, datatype data)

else

/*newp->pnext = p->pnext;

p->pnext = newp;*/

if (p == phead && p->

data

> newp->

data) //因為要改變投節點,所以需要單獨把頭插列舉出來

else

//其餘的為尾插或者中插

}showdata(phead);

return phead;

}

呼叫:

void main4()

環狀鍊錶即首尾相連,建立時的核心函式如下:

node *adddatacircel(node*phead, datatype data) // 尾部新增

else

p->pnext = newp;

}return phead;

}

相對應的顯示函式會發生死迴圈,即在環狀鍊錶內找不到結束點,所以相匹配有對應的顯示函式:

void showcircel(node*phead)    //列印

printf("%d \n", p->

data);

}

node* findcircle(node*phead, datatype data)

if (p->pnext->

data

!=data)

else

}

node* delcircle(node*phead, datatype data)

else

}

C語言雙鏈表框架搭建練習(二)

雙鏈表在功能上能夠彌補單鏈表上的不可逆,查詢上具有優勢,我們下面將介紹雙鏈表的搭建。雙鏈表結構體定義 typedef struct doublelinklist dblink,pdblink 因為雙鏈表是結構體中的指標連線起來的,所以建立鍊錶的時候自然不能少了尾部新增節點的函式 pdblink ad...

C語言雙鏈表框架搭建練習(一)

在資料結構中,鍊錶是不可或缺的存在,其在功能特點上與陣列的對立也是它具有在增刪上的獨特優勢 而c語言雖然在煉表處理上的方便程度不如c 但是更基層代表著更靈活。將二者結合,我們就可以根據需求做出不同的鍊錶結構,在完成基礎的搭建之後,看上去 量很大的c語言也可以很方便的操作,而且在執行速度和靈活性上完勝...

C語言 雙鏈表

還是 程式設計師面試寶典 上的 include include typedef struct student dnode 建立雙鏈表 dnode create else cycle 0 p next null p head head head next head pre null free p 釋放...