這一篇主要講單鏈表的
另附別家部落格
第乙個是關於順序線性表實現的程式:
第二個是關於鍊錶的程式實現:
這兩位博主貼出的程式大概是可以除錯出來的,我貼出的都是函式片段,不能直接除錯。
線性鍊錶
1、線性鍊錶的概念
以鏈式結構儲存的線性表稱之為線性鍊錶。
特點是該線性表中的資料元素可以用任意的儲存單元來儲存。線性表中邏輯相鄰的兩元素的儲存空間可以是不連續的。為表示邏輯上的順序關係,對錶的每個資料元素除儲存本身的資訊之外,還需儲存乙個指示其直接後繼的資訊。這兩部分資訊組成資料元素的儲存映象,稱為結點。
用線性鍊錶表示線性表時
,資料元素之間的邏輯關係是由結點中的指標指示的
2、線性鍊錶的儲存實現
struct lnode;頭指標與頭結點的區別:typedef struct lnode lnode;
typedef struct lnode * linklist;
頭指標只相當於結點的指標域,頭結點即整個線性鍊錶的第乙個結點,它的資料域可以放資料元素,也可以放線性表的長度等附加資訊,也可以不儲存任何資訊。
3、 線性表的操作實現(c語言 )
(1)初始化操作
status init_l(linklist l)(2)插入操作else return 0;
}
(3)刪除操作
(4)取某序號元素的操作
status getelem_l(linklist &l, int i, elemtype &e)(5)歸併兩個單鏈表的演算法if(!p||j>i)
return error;
e=p->data;
return ok;
}
void mergelist_l(linklist &la,linklist &lb,linklist &lc)else
}pc->next=pa?pa:pb;
free(lb); //我看的參考資料裡只寫了lb的,la不能釋放嗎?我覺得ok啊
}
資料結構之線性表 2
線性表一般分為順序表和煉表,本篇是對鍊錶的回顧,以c 建立簡單 帶頭結點 遞增單鏈表,實現插入和逆置功能為例。鍊錶的形式有很多種,其中最簡單 最基礎的是單鏈表。其他諸如迴圈鍊錶 雙向鍊錶 雙向迴圈鍊錶等,應該算是基於單鏈表的變形,個人認為其本質也還是單鏈表。單鏈表用來表示線性表時,其定義是 乙個儲存...
資料結構之線性表(2)
線性表的鏈式儲存特點使用一組任意的儲存單元儲存線性表的資料元素,這組儲存單元可以是連續的,也可以是不連續的。鍊錶中第乙個節點儲存的位置叫頭指標。單鏈表的第乙個節點前附設乙個節點叫頭結點。頭指標 頭指標是指鍊錶指向第乙個節點的指標,若煉表有頭結點,則是指向頭指標的結點。頭指標具有標識作用,所以常用頭指...
資料結構 線性表 2
package com.wjy.data structure.linearlist.common public inte ce nodepackage com.wjy.data structure.linearlist.common 單鏈表結點定義 public class slnode imple...