單鏈表的基本操作(增刪查總結)

2021-10-11 14:39:03 字數 1081 閱讀 7313

1.按元素值查詢演算法

根據給定值,從單鏈表l中從頭開始查詢元素在單鏈表中的位置,並返回其邏輯序號。如果沒找到,則返回0.

思路:

1.假設現在有乙個單鏈表l,定義乙個指標p,指向首節點,

再定義乙個數n.初始值為1;

2.因為不知道迴圈次數,故用while迴圈,這裡條件怎麼寫?

當迴圈跳出時,就是條件。 1.p !=null 2.p->data != e;

3.如果p=null ,則返回0。

否則 就是找到了,返回n

c**實現:

int

locateelem

(linklist * l,

int e)

if(p == null)

return

0else

return n;

}

2.插入節點操作

需要啥前提條件呢?

這裡要插入指定位置 i 節點,所以我們就要將節點插入該節點 的前面。 也就是要找到 i - 1 的結點。 並用指標p指向它。再在它後面插入節點:

核心**如下:

s->next = p->next;

p->next = s;

這裡如果將,兩個語句順序調換,是否可以?

不行,如果先執行p->next = s; 那麼指向下乙個節點的指標就不存在了

c**實現:

3.刪除結點操作

如何刪除節點,需要什麼前提條件?

在單鏈表中,要刪除節點,需要找到前驅節點。

假設這裡有三個節點,第乙個被p指向,第二個要刪除,第三個不被任何指向

核心操作:

p->next = p->next->next;

單鏈表的增刪改查操作

mark一下自己的學習過程,繼續堅持 linklist.cpp love created by wpln on 2018 11 8.include include include include using namespace std typedef struct studentstu,pstu d...

Java單鏈表增刪改查反轉基本操作

資料結構複習,是最好的說明。節點類 public class node public object getobject public void setobject object object public node getnext public void setnext node next 鍊錶類 ...

C語言 單鏈表的基本操作(增刪改查)

這是尾插法單鏈表,單鏈表比較適合用來做佇列和棧,因為在鍊錶的頭和尾時的增刪改查的時間複雜度為o 1 而在鍊錶內部的增刪改查的平均時間複雜度為o n include stdio.h include stdlib.h 提供malloc 和free include string.h include tim...