c 語言資料結構系列,單鏈表的查詢和建立操作

2022-09-22 04:30:12 字數 928 閱讀 5729

獲取表l 中第i 個位置的元素的值(帶頭結點),可把頭結點看成第0 個結點,程式**如下:

lnode *getelem(linklist l,int i)

return p;

}

看了上面的**片段,我們是不是感覺很熟悉呢?是的,它於我們在前面的在第 i 個位置插入元素e (帶頭結點)的**是一樣的,只不過這裡是找第i 個結點,而前面迴圈找的是第 i-1 個結點。

找到資料域==e 的結點,部分程式**片段如下:

lnode * locateelem(linklist l,elemtype e)

通過上面的啟發,我們是不是覺得求乙個單鏈表的長度就很容易了呢?看看下面的**,你說簡不簡單?

int length(linklist l)

return len;

}

如果給你很多個資料元素(elemtype),你會把他們存到乙個單鏈表裡嗎?

結合前面學習的後插操作,我們來實現一下尾插法建立單鏈表:

linklist list_tailnsert(linklist &l)

r->next=null;//尾結點指標置空

return l;

}

下面結合**理解一下上面的幾行**:

還是剛才說的,我們想一想前面的後插操作insertnextnode(lnode *p,elemtype e)的實現,然後我們再來看一看用頭插法建立單鏈表的實現:

linklist list_headinsert(linklist &l)

return l;

}

不知道我們發現了沒有,頭插法建立單鏈表可以實現單鏈表的逆置!

c語言 資料結構 單鏈表

將線性表l a0,a1,an 1 中各元素分布在儲存器的不同儲存塊,稱為結點,通過位址或指標建立它們之間的聯絡,所得到的儲存結構為鍊錶結構,表中 ai的結點形式如圖表示 其中結點的data 域存放資料元素 ai,而 next 域是乙個指標,指向 ai的直接後繼 ai 1 所在的結點。單鏈表結構如下 ...

資料結構 單鏈表 C語言

單向鍊錶 鍊錶結點通常包含資料域與指標域,資料域用來儲存相關的使用者的資料,指標域用來指向下乙個結點。訪問單向鍊錶,需要從頭部 head 開始單向順序訪問,訪問終結於指標域 next 為null的結點 其儲存方式不同於以往的陣列,按照非連續位址方式儲存。優點 鍊錶長度可以實現動態增長,不必像陣列一樣...

C語言資料結構 單鏈表

單鏈表在資料結構裡十分常見,是一種常見的線性表,下面介紹其性質並用 實現相關功能 單鏈表以鏈結方式儲存資料 1 鍊錶的具體儲存表示為 用一組任意的儲存單元來存放線性表的結點 這組儲存單元既可以是連續的,也可以是不連續的 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存...