資料結構之 鍊錶詳解

2021-08-21 01:35:58 字數 4033 閱讀 9123

。[cpp] 

view plain

copy

typedef

struct

lnode  

;  )

[cpp] 

view plain

copy

void

initlist(linklist*&l)  

樂樂站在第乙個,星星站在樂樂 的前面,呆子站在星星的前面……依次排列,這樣樂樂會最終站在隊尾(這就是頭插法建立單鏈表

)。[cpp] 

view plain

copy

void

createlisth(linklist *&l, 

inta, 

intn)   

//頭插法建立單鏈表

}  樂樂站在第乙個,星星 站在樂樂的後面,呆子站在星星的後面,豐豐站在呆子的後面,……其他人依次後排(這就是尾插法建立單鏈表

)。[cpp] 

view plain

copy

void

createlistr(linklist *&l, 

inta, 

intn)  

r->next = l->next;             //隊伍建立完成後,最後  隊尾節點為 null;

}  [cpp] 

view plain

copy

intlistlength(linklist *l)  

return

ans;  

}  [cpp] 

view plain

copy

void

coutlist(linklist *l)  

}  [cpp] 

view plain

copy

bool

changeinfo(linklist *&l, 

inti, 

int&e)    

//小韋查到了星星的位置,想好了外號

if(p == null)  

return

false

;  else

}  [cpp] 

view plain

copy

bool

listdelete(linklist *&l, 

inti)    

//找到樂樂的位置

if(p == null)                  

//如果找錯了,不存在i節點,說明小韋的 數學是體育老師教的,

return

false

;  else

p->next = q->next;          

free(q);  

return

true

;  }  

}  [cpp] 

view plain

copy

bool

listinsert(linklist *&l, 

inti, 

inte)  

//小韋在某個位置上插入隊伍

if(p == null)  

return

false

;  else

}  [cpp] 

view plain

copy

typedef

struct

lnode  

linklist;  

[cpp] 

view plain

copy

void

createlist_f(linklist *&l, 

inta, 

intn)  

l->next = s;  

s->prior = l;  

}  }  

[cpp] 

view plain

copy

void

creatlist_r(linklist *&l, 

inta, 

intn)  

r->next = l->next;  

}  [cpp] 

view plain

copy

typedef

struct

lnode    

//資料節點

linklist;  

void

initlist(linklist *&l)   

//建立空的單鏈表

void

createlisth(linklist *&l, 

inta, 

intn)    

//頭插法建立單鏈表

}  void

createlistr(linklist *&l, 

inta, 

intn)  

//尾插法建立單鏈表

r->next = l->next;             //隊伍建立完成後,最後  隊尾節點為 null;

}  "1630697"

snippet_file_name=

"blog_20160331_15_6131477"

name=

"code"

class

="cpp"

>  

intlistlength(linklist *l)                  

//返回單鏈表的長度

return

ans;  

}  void

coutlist(linklist *l)                    

//輸出每個節點的資訊

}  bool

getelem(linklist *&l, 

inti, 

int&e)             

//修改某個位置上的資料資訊

if(p == null)                                         

//如果結束時是因為鍊錶結束了,則說明 i超出了範圍

return

false

;  else

//否則,修改資訊

}  bool

listdelete(linklist *&l, 

inti)                          

//刪除某個節點

if(p == null)  

return

false

;  else

//如果找到了該節點,

p->next = q->next;  

free(q);  

return

true

;  }  

}  bool

listinsert(linklist *&l, 

inti, 

inte)               

//  插入節點

if(p == null)  

return

false

;  else

//如果  找到位置,先讓要插入的s節點指向當前節點的後繼,並讓當前節點的後繼指向s。

}  [cpp] 

view plain

copy

typedef

struct

lnode   

//雙鏈表節點

linklist;  

void

createlist_f(linklist *&l, 

inta, 

intn)   

//頭插法建立雙鏈表

l->next = s;                              //l的 next指向 s,s的 前驅節點指向l。

s->prior = l;  

}  }  

void

creatlist_r(linklist *&l, 

inta, 

intn)  尾插法建立雙鏈表  

r->next = l->next;  

}  

C 資料結構之鍊錶詳解

目錄 鍊錶型別的習題常用的技巧就是定義指標來代替head的,替head走,要麼就是數學問題,環形鍊錶就是利用數學思想取解決的,要麼就是定義雙指標來操作鍊錶。定義兩個變數,乙個使待刪除的節點,乙個為待刪除節點的前驅節點,最後記得判斷頭節點是否為要刪除的節點,最後返回頭節點。public listnod...

資料結構詳解 鍊錶

鍊錶其實和陣列一樣,可以儲存一串元素.但又與陣列不同,那就是陣列是以下標進行儲存的,例如a 1 a 2 a 3 等,而鍊錶則是根據許多數字的前後關係的數字進行儲存的,其原理類似於圖論中的鄰接表,所儲存的序列並不是有序的,而是儲存這個數的前面 next 和這個數的後面 pre 來得到這一串有序的序列的...

資料結構 鍊錶詳解

1.什麼是鍊錶?鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。2.鍊錶和陣列的區別?線性表包括陣列和鍊錶兩種,陣列是採用連續的儲存空間,陣列具有隨機儲存的特性,什麼是隨...