資料結構(線性錶鏈式儲存)的幾個基本操作
取結點個數
取結點個數時,cnt從0開始
//求單連結串列的表長
//從首元結點開始,依次計數所有結點
int ListLength_L(Linklist L) {
int cnt = 0;
LNode* p;
p = L->next;
while (p != NULL) {
cnt++;
p = p->next;
}
return cnt;
}
//取值,取單連結串列中第i個元素的內容
取第i個元素的內容時,cnt從1開始
因為p的初值時L->next,如果p不為NULL時,那麼p指向首元結點
如果i的值為1,並且cnt初值取0的話,那麼while迴圈會執行依次,此時p會指向首元結點後面一個結點,此時p->data的值不對
Status GetElem_L(Linklist L, int i, ElemType& e) {
LNode* p;
int cnt = 1;
p = L->next;
while (p != NULL && cnt < i) {
p = p->next;
cnt++;
}
if (p == NULL || cnt > i)
return ERROR;
e = p->data;
return OK;
}
按值查詢,根據指定資料獲取該資料的位置序號
cnt取0,理由同上
int LocateElem(Linklist L, ElemType e) {
LNode* p;
int cnt = 1;
p = L->next;
while (p != NULL && p->data != e) {
cnt++;
p = p->next;
}
if (p == NULL)
return 0;
return cnt;
}
//刪除第i個結點
因為要刪除第i個結點,所以第i個結點必須要有內容
讓p指向第i-1個結點,那麼p->next就是第i個結點,所以判斷條件要有p->next != NULL
Status DeleteList(Linklist& L, int i, ElemType& e) {
LNode* p;
p = L;
int cnt = 1;
while (p->next != NULL && cnt < i - 1) {
p = p->next;
cnt++;
}
if (p->next == NULL || cnt > i - 1)
return ERROR;
LNode* q = p->next;
e = q->data;
p->next = q->next;
delete q;
return OK;
}
//建立單連結串列(尾插法),元素插在連結串列尾部
void CreatList_T(Linklist& L, int n) {
L = new LNode;
L->next = NULL;
LNode* r = L;
for (int i = 0; i < n; i++) {
LNode* p;
p = new LNode;
scanf(&p->data);
r->next = p;
p->next = NULL;
r = p;
}
}
相關文章
- 資料結構線性表的鏈式儲存結構(單連結串列)的表示及其基本操作資料結構
- 線性表之鏈式儲存結構
- 線性結構(順序儲存和鏈式儲存)和非線性結構的特點及區別
- 從零開始學資料結構和演算法(二)線性表的鏈式儲存結構資料結構演算法
- 8-佇列的鏈式儲存結構的操作佇列
- 資料結構:線性表(Python實現基本操作)資料結構Python
- 資料結構知否知否系列之 — 線性表的順序與鏈式儲存篇(8000 多字長資料結構
- 【資料結構】二叉樹(順序儲存、鏈式儲存)的JAVA程式碼實現資料結構二叉樹Java
- 資料結構實驗5、鏈佇列的基本操作資料結構佇列
- 11 線性表的順序儲存結構
- 佇列的鏈式儲存結構的實現佇列
- 線性表之順序儲存結構
- HBase 資料儲存結構
- 【資料結構——圖和圖的儲存結構】資料結構
- Redis(一):基本資料型別與底層儲存結構Redis資料型別
- 【PHP資料結構】圖的概念和儲存結構PHP資料結構
- VSAN儲存結構解析+儲存資料恢復案例資料恢復
- C++資料結構連結串列的基本操作C++資料結構
- 利用泛型模擬棧結構實現內部鏈式儲存結構泛型
- MyRocks儲存引擎資料結構解析儲存引擎資料結構
- 資料結構——線性表資料結構
- 資料結構 | 線性表資料結構
- 資料結構-線性表資料結構
- 資料結構—線性表資料結構
- [資料結構] - 線性表資料結構
- 線性表的基本操作
- 詳解資料庫儲存的資料結構LSM Tree資料庫資料結構
- 資料結構知識點--儲存結構與邏輯結構資料結構
- 前端資料結構--線性結構-連結串列前端資料結構
- HTML基本結構包含幾個部分?HTML
- MySQL-07.InnoDB資料儲存結構MySql
- 資料庫內部儲存結構探索資料庫
- 資料結構之跳錶資料結構
- Mysql-Innodb : 從一個位元組到整個資料庫表瞭解物理儲存結構和邏輯儲存結構MySql資料庫
- iOS開發資料儲存篇—iOS中的幾種資料儲存方式iOS
- C語言資料結構:鏈式佇列的建立及其出入隊操作C語言資料結構佇列
- 鏈式儲存的佇列佇列
- 資料結構-線性表、連結串列資料結構