線性表的鏈式儲存

2021-09-29 03:04:45 字數 1054 閱讀 5582

線性表的順序儲存的特點是,在邏輯關係上相鄰的兩個元素在物理位置上也是相鄰的,因此可以隨機訪問表中任一元素。但是,當經常做插入和刪除操作運算時,則需要移動大量的元素,而採用鏈式儲存結構就可以避免這些移動。

用c語言中的結構型別描述線性表的鏈式儲存結構如下:

typedef struct nodelistnode;

typedef listnode *linklist;

listnode *p;

linklist head;

一、單鏈表基本運算

1、建立單鏈表

1.1 頭插法建表

linklist createlistf()

return head;

}1.2 尾插法建表

linklist createlistr()

r->next = null;

return head;

}2、查詢運算

2.1 按節點序號查詢

listnode * getnodei(linklist head, int i)

if(j==i)

return p;

else

return null;

}2.2 按節點值查詢

listnode * locatenodek(linklist head, datatype k)

3、插入運算

void insertlist(linklist head,int i, datatype k)

if(p==null)

else

}4、刪除運算

datatype deletelist(linklist head, int i)

if(p==null)

else

}二、雙向鍊錶

雙向鍊錶重點關注刪除演算法,如下:

datatype dldelete(dlnode *p)

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

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

free(p);

return x;

注:p指向當前節點

線性表的鏈式儲存

此方法雖然簡單,但是真寫起來太複雜了。線性表的鏈式儲存 include include struct lnode 線性表的初始化 void init l lnode l 線性表的後插建立 void create l1 lnode l n next null 線性表的後插建立 void create ...

線性表的鏈式儲存

引言 一 單鏈表 相較於順序儲存用連續的儲存單元儲存,單鏈表採用鏈式儲存結構,用一組位址任意的儲存單元儲存資料元素。特點 1 儲存單元可以是不連續的,即邏輯結構與物理結構可以不相同 2 元素用結點儲存,每個結點由元素值和下乙個元素的位址構成 3 單鏈表是由每個結點的指標域按照邏輯次序相互連線而成的。...

線性表的鏈式儲存

include include include typedef int elemtype typedef struct nodenode,nodeptr 鍊錶節點 typedef struct listlist,listptr 鍊錶,頭結點為0位置 listptr initlist 初始化鍊錶 vo...