單向鍊錶的基本操作(頭插,尾插,刪除)

2021-08-20 07:18:05 字數 1205 閱讀 4397

由於最近剛寫完火車票的管理系統,裡面大量的用到了鍊錶的部分,所以在這裡總結一下鍊錶的幾種基本操作。

要用鍊錶首先要知道鍊錶是什麼。簡單的說鍊錶就是一串儲存資料的結構。說到這我們一定都會想到陣列,陣列也可以儲存資料,但是它儲存的資料在記憶體中是連續的,而鍊錶儲存的資料是分散的,它由每乙個結點構成,並由指標將其連線起來,所以每個結點中就包含了資料域和指標域。

建立乙個鍊錶我們需要乙個頭結點,後要為頭結點申請記憶體空間,這樣就方便了鍊錶的操作,以後在查詢或者增加等等操作時,都不用再判斷哪個結點是鍊錶的第乙個結點。下面是建立鍊錶的**。

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為結構體變數,如此定義會陷入死迴圈 定義乙個函式,初始化鍊錶,棧空間,函式呼叫後返回...