void
initlist
(list plist)
//初始化
plist->next==
null
;}
2、插入元素(insert)
(1)宣告結點p指向鍊錶第乙個結點;
(2)當p!=null時,就遍歷鍊錶,讓p的指標向後移動,不斷指向下乙個結點,i++;
(3)若到鍊錶末尾p為空,則說明第i個元素不存在;
(4) 否則查詢成功,在系統中生成乙個空結點q;
(5) 將資料元素val賦值給q->data;
(6) 單鏈表的插入標準語句q->next=p->next; p->next=q;
(7) 返回成功。
//第乙個資料節點的下標為0
bool insert
(list plist,
int pos,
int val)
if(i//沒有pos下標
node *q=
(node *
)malloc
(sizeof
(node));
q->data=val;
//將q插入在p的後面
q->next=p->next;
p->next=q;
return true;
}
3、單鏈表的刪除( delete)
(1)宣告一結點p指向鍊錶的第乙個結點,初始化j從1開始。
(2)當jnext賦值給q;
(5)單鏈表的刪除標準語句p->next=q->next;
(6)將q結點中的資料賦值給key,作為返回;
(7)釋放q結點;
bool delete
(list plist,
int key)if(
!(p->next)
|| j>1)
return false;
q=p->next;
p->next =q->next;
key=q->data;
free
(q);
return true;
}
4、單鏈表的建立—頭插(insert_head)
從建立乙個空表開始,生成新結點,將讀入的資料存放到新結點的資料域中,然後將新結點插入到當前鍊錶的表頭結點,知道讀入結束時停止。
bool insert_head
(list plist,
int n)
return true;
}
4、單鏈表的建立—尾插
將新結點插入到當前單鏈表的表尾,增加乙個尾指標r,指向當前鍊錶的表尾
bool insert_tail
(list plist,
int n)
r->next =
null
;return true;
}
5、單鏈表的整表刪除(clearlist)
(1)宣告一結點p和q;
(2)將第乙個結點賦值給p;
(3)迴圈:
將下一結點賦值給q; 釋放p;將q賦值給p。
bool clearlist (list *l)
(*l)
->next=
null
;//頭指標的指標域指為空
return true;
線性表的鏈式儲存結構 單鏈表
線性表中每個節點有唯一的前趨節點和後繼節點 每個 物理節點增加乙個指向後繼節點的指標域 單鏈表 每個物理節點增加乙個指向後繼節點和前趨節點的指標域 雙鏈表 單鏈表的特點 當訪問乙個節點後,只能接著它的後繼節點,而無法訪問它的前趨節點。1.單鏈表插入節點 操作 將值為x的新節點 s插入到 p節點之後 ...
線性表 鏈式儲存結構之單鏈表
ifndef linklist h define linklist h include include include template class node node const elemtype data data data next null node const elemtype data,...
Java基礎 線性表之鏈式儲存結構 單鏈表
鏈式儲存結構的線性表 簡稱為鍊錶 將採用一組位址任意的儲存單元存放線性表中的資料元素。鏈式儲存結構的線性表不會按線性的邏輯順序來儲存資料元素,它需要在每個資料元素中儲存乙個引用下乙個資料元素的引用 或者叫做指標 節點 資料元素 引用下乙個節點的引用 引用上乙個節點的引用 對於單鏈表通常有兩種建表方法...