由於最近剛寫完火車票的管理系統,裡面大量的用到了鍊錶的部分,所以在這裡總結一下鍊錶的幾種基本操作。
要用鍊錶首先要知道鍊錶是什麼。簡單的說鍊錶就是一串儲存資料的結構。說到這我們一定都會想到陣列,陣列也可以儲存資料,但是它儲存的資料在記憶體中是連續的,而鍊錶儲存的資料是分散的,它由每乙個結點構成,並由指標將其連線起來,所以每個結點中就包含了資料域和指標域。
建立乙個鍊錶我們需要乙個頭結點,後要為頭結點申請記憶體空間,這樣就方便了鍊錶的操作,以後在查詢或者增加等等操作時,都不用再判斷哪個結點是鍊錶的第乙個結點。下面是建立鍊錶的**。
struct node *creat()
鍊錶的操作需要結構體,下面是講解例子的結構體
struct node
;
頭插法顧名思義就是從鍊錶的頭開始放,即有新的結點就把此結點放在頭結點的後面,下面是頭插法的**:
void head_insert(struct node *phead)
尾插法顧名思義就是將新生成的結點發到最尾部,下面是**例子:
void tail_insert(struct node *phead)
下面是**例子:
void delete(struct node *phead,int value)
else
t=t->next;
}
以上就是鍊錶的頭插 尾插 刪除的操作,下面是一整段的**,將三者寫到乙個程式中
#include
typedef struct node
linklist;
linklist *creat()
void head_insert(linklist *phead,int n)//頭插法
}void tail_insert(linklist *phead,int value)//尾插法
void print(linklist *phead)//列印鍊錶
printf("\n");
}void delete(linklist *phead,int value)//刪除結點
else
t=t->next;
}}int main(void)
鍊錶操作 頭插法尾插法
單鏈表的插入操作,包括頭插和尾插,兩種的時間複雜度都為o n 單鏈表插入操作 頭插 尾插 include include using namespace std 定義結點資料型別 typedef int elemtype 結點定義 typedef struct lnode lnode,linklis...
單向鍊錶的尾插
實現乙個單向鍊錶的尾插,首先也是要對原始鍊錶進行判斷,分情況,對於空鍊錶來說,尾插就直接返回node,如果是非空鍊錶,就要通過last找到最後乙個節點,即讓last last.next不斷迴圈,當last.next null時就得到了最後乙個節點,然後讓last.next node,這樣就實現了將n...
單向鍊錶 尾插法
include include malloc函式標頭檔案 1設計節點 放置資料和指標 不同資料用結構體 結構體模板 struct node 關鍵字 結構體模板名稱 指標名字 struct node next next為結構體變數,如此定義會陷入死迴圈 定義乙個函式,初始化鍊錶,棧空間,函式呼叫後返回...