單鏈表及雙鏈表
阿新 • • 發佈:2021-08-07
連結串列
單鏈表 多個單鏈表構成鄰接表 :應用:儲存圖,儲存樹
雙鏈表 應用:優化某些題
1.單鏈表:
//說實話,這個真的不難,前提是想好插入和刪除一條鏈的方法
用陣列模擬:
1.定義每個節點的val
e[n]定義當前點
ne[n] 定義下一個節點的位置
空節點下標用-1表示
#include<iostream> using namespace std; const int N=100010; //head 表示頭結點的下標 //e[i] 表示節點i的值 //ne[i] 表示節點i的next指標是多少 //idx儲存當前已經用到了哪個點 void init(){ head=-1; idx=0; } void add_to_head(int x){ e[idx]=x; ne[idx]=head; head=idx++; } //將x插到頭節點 void add(int x,int k){ e[idx]=x; ne[idx]=ne[k]; ne[k]=idx++; } //將x插到k的後面 void remove(int k){ ne[k]=ne[ne[k]]; } //刪除k後面的數 int main(){ int m; cin>>m; while(m--){ char op; int k,x; cin>>op; if(op=='H') cin>>x,add_to_head(x); else if(op=='D') cin>>k,remove(k); else cin>>k>>x,add(k,x); } for(int i=head&&i!=-1;i=ne[i]){ cout<</iostream>