鏈表的實現
作為數組的改進型,鏈表擁有著數組不可比擬的靈活性,即大小可以隨時申請改變,而數組則必須預先將大小確定,此后再無法更改。但是,鏈表也具有一個特性,那就是鏈表必須有一個頭指針,因為這是外界操作和查找鏈表的入口。
鏈表又分為單向鏈表和雙向鏈表。兩者均由一個個的節(jié)點組成。但是兩者的節(jié)點卻不盡相同,其中,單向鏈表的節(jié)點擁有一個指針域和一個數據域,指針域指向下一個節(jié)點的首地址,這種連接結構決定了單向鏈表只能單向操作,一旦錯過需要操作的節(jié)點,唯一補救的辦法是回到頭指針遍歷回來。而雙向鏈表的節(jié)點則擁有兩個指針域和一個數據域,雙鏈表與單鏈表相比,多了一個前向指針。前向指針指向其前一個節(jié)點的首地址,使用起來較單向鏈表靈活,不存在單向鏈表錯過需操作的節(jié)點后要遍歷回來的問題。
兩者節(jié)點是事項方式均可使用結構體進行實現
單向鏈表節(jié)點的實現:
struct node {
int data;
struct node *pNext;
}
雙向鏈表的節(jié)點實現:
struct node{
struct node *precv;
int data;
struct node *pNext;
}
,都具有增刪查改的功能。
標簽: