鍊錶的認識及鍊錶元素的插入

2021-09-01 20:45:00 字數 1740 閱讀 9565

鍊錶的定義:

鍊錶(linked list)是一種常見的基礎資料結構,是一種線性表,但是並不會按線性的順序儲存資料,而是在每乙個節點裡存到下乙個節點的指標(pointer)。

因為鍊錶不用必須按順序進行儲存,因此可以對鍊錶進行增、刪、改、查等操作,下面先介紹鍊錶的幾個插入的例子:

1.鍊錶的插入:

鍊錶的插入可以分為頭插和尾插和按位置插入,顧名思義就是從頭插入元素和從尾部插入元素還有從某一位置插入;

頭插法:

申請乙個新節點,讓頭結點的指標域指向新節點的資料域,新節點的指標域儲存第乙個元素的位址,則插入成功;

bool inserthead(plink phead, elem_type val)

//判斷鍊錶是否為空

plink pnewnode = buynode(val);

if (pnewnode == null)

//申請新節點

pnewnode->pnext = phead->pnext;

phead->pnext = pnewnode;     //新節點插入

return true;

}尾插法:

先從頭開始遍歷,找到鍊錶的尾結點,尾結點的指標域儲存新節點的位址,則元素插入成功 ;

bool inserttail(plink phead, elem_type val)

//判斷鍊錶是否為空

plink pcur = phead;

while (pcur->pnext != null)

// 遍歷整個鍊錶,找到到尾結點

plink pnewnode = buynode(val);

if (pnewnode == null)

//申請新節點

pcur->pnext = pnewnode;   // 插入新節點

return true;

}按位置插入:

元素插入步驟:

1.判斷結構是否合理;

2.判斷插入位置是否合理;

3.查詢要插入位置的前置結點

4.插入

// 判斷結構是否合理

if (pos  < 0 || pos > getlength(phead))

// 判斷插入位置是否合理

plink pfront = phead;

for (int i = 0; i < pos; ++i)

//查詢要插入位置的前置結點

plink pnewnode = buynode(val);

if (pnewnode == null)

pnewnode->pnext = pfront->pnext;

pfront->pnext = pnewnode;  //插入

return true;

}

鍊錶元素的刪除 插入

需要判斷要刪除元素在鍊錶中的位置 重要 用鍊錶的結構建立一條公交線路的站點資訊,從鍵盤依次輸入從起點到終點的各站站名,以單個 字元作為輸入結束,統計站的數量並輸出這些站點 include include malloc所需標頭檔案 include memset所需標頭檔案 struct station...

鍊錶定義 鍊錶的插入 鍊錶的刪除 鍊錶的查詢

鍊錶的定義 鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個 頭指標 變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為 結點 每個結點都應包括兩個部分 一為使用者需要用的實際資料,二為下乙個結點的位址。因此,he...

關於鍊錶的認識

對於一些基本的概念,我就不多說了 在我的感覺裡鍊錶就是乙個個方塊和箭頭的組成。那麼,方塊是什麼?箭頭又是什麼?先說方塊吧,它是鍊錶的最基本的組成單元,當然,這個方塊還可以再分,最簡單的就是單鏈表,只要將其分成2部分就可以了,一部分是我們要儲存的資料,另一塊就是乙個指標。那麼,這些指標是幹什麼的?這就...