單鏈表的基本操作

2021-10-04 04:35:02 字數 1070 閱讀 5119

前言:

鍊錶對於大多數同學來說可能都是乙個大難題,無論是以前c語言,還是現在的資料結構,似乎都讓同學們感覺到十分困難。甚至有這種感覺:自己動手編**的時候,完全不知道怎麼編。為了方便大家理解,我用較簡單的思維總結了一下,希望對大家有幫助。

再次說明:

以下內容僅僅是個人的一些見解,上不得檯面,真正的**實現還是要看那些大佬的部落格。

首先是單鏈表儲存結構的型別定義,我們先來想一想,乙個鍊錶,它的每個結點可以分為兩個部分,即資料域和指標域。所以我們就定義了乙個結構體,包含資料域和指標域這兩個元素。

typedef

struct lnodelnode,

*linklist;

//linklist相當於lnode *

linklist l;

//linklist l相當於lnode *l

typedef在這裡的作用是「起小名」,即把這個結構體又叫做lnode,這樣可以極大的方便我們的程式設計。除此之外,鍊錶剛開始需要乙個頭指標,所以我們在這裡將其一並定義出來。

我們現在再來回顧一下鍊錶的定義過程:大家在腦海中自行腦補鍊錶的樣子,是不是每個結點有兩個部分,分別存放資料和指標。另外,它還要乙個頭指標。所以,我們可以很清晰的將其過程理解並運用起來。

然後是單鏈表的初始化,初始化其實就是構造乙個空的單鏈表,這個比較簡單,所以不再詳細說明。

接下來到了最為重要的點:單鏈表的建立。假設我要將n個元素接上去,那麼只需要迴圈n次就可以了。由於前面初始化的時候,我們已經有了乙個頭結點,所以接下來我們需要申請記憶體空間,有了空間之後,我們就可以把數存放進去。那麼現在,我們已經有了許多個結點,但是他們還沒有連起來,因此,我們需要將其連起來以形成鍊錶。

creatlist

(&l,n)

}

我們這個最後一行的目的是為了尾部值的更新,由於我們在接的時候,原本的尾指標現在就不再是尾指標了,因此我們需要對其進行更新。以確保r所代表的指標無論何時都是尾指標。

對於單鏈表的基本操作,我只總結到這裡,我知道肯定有很多大佬看到了會笑話我,不過,如果發現錯誤的話,請一定要告訴我,畢竟我初學程式設計,很多地方都難免會出錯。

單鏈表基本操作

include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...

單鏈表基本操作

單鏈表的初始化,建立,插入,查詢,刪除。author wang yong date 2010.8.19 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist...

單鏈表基本操作

include using namespace std define namelenth 20 define ok 0 define error 1 typedef struct flagnode node 生成結點 inline node newnode 銷毀化煉表 void destroylin...