獲取表l 中第i 個位置的元素的值(帶頭結點),可把頭結點看成第0 個結點,程式**如下:
lnode *getelem(linklist l,int i)看了上面的**片段,我們是不是感覺很熟悉呢?是的,它於我們在前面的在第 i 個位置插入元素e (帶頭結點)的**是一樣的,只不過這裡是找第i 個結點,而前面迴圈找的是第 i-1 個結點。return p;
}
找到資料域==e 的結點,部分程式**片段如下:
lnode * locateelem(linklist l,elemtype e)通過上面的啟發,我們是不是覺得求乙個單鏈表的長度就很容易了呢?看看下面的**,你說簡不簡單?
int length(linklist l)如果給你很多個資料元素(elemtype),你會把他們存到乙個單鏈表裡嗎?return len;
}
結合前面學習的後插操作,我們來實現一下尾插法建立單鏈表:
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 鍊錶的具體儲存表示為 用一組任意的儲存單元來存放線性表的結點 這組儲存單元既可以是連續的,也可以是不連續的 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存...