單鏈表
模擬單鏈表
#include.h>
using namespace std;
const int n
=1e5+10
;int head,ne[n]
,e[n
],idx;
int n;
// head 指向頭節點
// ne[i]指向第i個節點的下乙個節點
// e[i] 第i個節點的值
// idx 儲存當前已經用到了哪個點
void
init()
//將x插到頭節點
void
add_to_head
(int x)
// 將x插到k下標的後面
void
add(int k,int x)
// 刪除下標為k的後面的數
void
remove
(int k)
int main()
else
if(c==
'd')
else
if(c ==
'i')
}for
(int i=head;i!=-1
;i=ne[i]
) cout<<<
" ";
return0;
}
雙向鍊錶#include.h>
using namespace std;
const int n
=1e5+10
;int l[n]
,r[n
],e[n]
,idx;
int n;
/*l[i] 指向i節點的左邊
r[i] 指向i節點的右邊
e[i] i節點的值
*/void
init()
//在k的右邊加乙個數
// k的左邊 add(l[k],x);
void
add(int k,int x)
//刪除第k個數
void
remove
(int k)
int main()
else
if(c==
"r")
else
if(c==
"d")
else
if(c==
"il"
)else
if(c==
"ir")}
for(int i=r[0]
;i!=
1;i=r[i]
) cout<<<
" ";
return0;
}
模擬棧、佇列的基本操作#inclcude.h>
using namespace std;
const int n
=1e5+10
;// tt表示棧頂
int stk[n]
, tt =0;
// 向棧頂插入乙個數
stk[
++ tt]
= x;
// 從棧頂彈出乙個數
tt --
;// 棧頂的值
stk[tt]
;// 判斷棧是否為空
if(tt >0)
----
----
----
----
----
----
----
----
----
-------
#include.h>
using namespace std;
// hh 表示隊頭,tt表示隊尾
int q[n]
, hh =
0, tt =-1
;// 向隊尾插入乙個數
q[++ tt]
= x;
// 從隊頭彈出乙個數
hh ++
;// 隊頭的值
q[hh]
;// 判斷佇列是否為空
if(hh <= tt)
else
empty;
acwing
#include.h>
using namespace std;
const int n
=1e5+10
;int n,m;
char p[n]
,s[n];
int ne[n]
;int main()
//匹配過程
for(int i=
1,j=
0;i<=m;i++)}
return0;
}
用單向鍊錶模擬佇列
讓 rear 指標指向的節點的 next 指標指向新節點,然後讓 rear 指標指向下乙個節點。每次出佇列時,都讓 font 指標指向 head 節點的下乙個節點。最後從佇列中彈出 front 節點。資料結構 佇列 鍊錶 建立乙個鍊錶模擬佇列 實現 資料入佇列 資料出佇列 顯示佇列 package ...
(基礎) 陣列模擬鍊錶 棧 佇列
適用於鄰接表 儲存圖和樹 head 表示頭結點的下標 e i 表示節點i的值 ne i 表示節點i的next指標是多少 idx 儲存當你已經用到的那個點 int head,e n ne n idx 初始化 void init 將x插到頭結點 void add to head int x 將x插到下標...
鍊錶模擬佇列
佇列是最基礎的資料結構之一,通過構建鍊錶來模擬佇列,更加清晰的理解佇列的意義。這裡是將佇列作為全域性變數來呼叫,因為不用全域性變數的時候出現好多錯誤,最後還是用了全域性變數。上 include using namespace std include includestruct linklist st...