單鏈表的建立、遍歷、與增刪改查
前言:我先這篇文章的目的是為了分享自己所學的東西。 連結串列是一種很常見的資料結構,但是因為與指標的結合,使得它變得讓人頭疼,初學者往往會被其搞得暈頭轉向,好了廢話不多說下面開始。
1、建立連結串列
首先是建立連結串列,這個大家應該都會
2、初始化連結串列
num所代表的是節點的個數。初始化連結串列是最讓我頭暈的一個部分了,不過理解了之後還是挺簡單的。我們首先要做的就是先申請新節點,然後將新節點的指標域置為空,之後判斷連結串列是否為空,如果為空則使頭指標指向新的節點p,不然的話使q(q指的是最後一個節點)的指標域指向新節點p,然後將q指向p(為了保證q是最後一個節點)。最後將q的指標域置空,返回頭指標。
3、遍歷輸出連結串列
遍歷輸出操作很簡單,不多說。就是迴圈將頭指標後移,輸出其中的資料就行了。
4、插入操作
插入操作分為尾插法和頭插法,先說尾插法 尾插法是將輔助指標temp指向最後一個節點,然後將temp的指標域指向新的節點p,並使p的指標域置空。下面是頭插法 頭插法便是在頭節點的前面插入新的節點。所以我們要判斷所要插入的位置是不是頭節點。如果是頭節點的話便使新節點p的指標域指向頭節點,將頭指標指向新的頭節點p。如果是連結串列的中間的話,便將新節點p的指標域指向相鄰的節點temp,將temp的指標域指向新的節點。最後返回頭指標。其中很重要的一條是遍歷連結串列的時候一定要(temp->next!=NULL),而不是(temp!=NULL)。
5、連結串列的刪除
刪除便是找到所要刪除的節點temp,然後將其摘掉,但是為了保證連結串列的連續,就得將temp節點的前一個節點p的指標域指向原本temp的指標域,之後就可以摘鏈了。不過需要注意的是要記得判斷是否是頭節點,如果是的話就得讓頭指標後移。
6、連結串列的修改
看到這裡已經沒有什麼難點了,基本上就是簡單的遍歷連結串列了 不過還是需要注意遍歷判斷的條件(temp->next!=NULL)。
7、連結串列的查詢
和前面一樣。