單鏈表:
#include
using namespace std;
int head=-1
,idx=
0,e[
100005
],ne[
100005];
void
add_head
(int x)
void
remove
(int k)
void
add(
int k,
int x)
intmain()
else
if(a==
"d")
//刪除元素
else
//在第k個數後面插入乙個數
}for
(int i=head;i!=-1
;i=ne[i]
) cout
}
雙鏈表:
#include
using namespace std;
int idx,e[
100005
],r[
100005
],l[
100005];
void
remove
(int k)
//右邊插入
//k-1
void
add(
int k,
int x)
//最右邊插入 1
void
add_head1
(int x)
//最左邊插入 0
void
add_head0
(int x)
intmain()
else
if(a==
"il"
)//表示在第k個插入的數左側插入乙個數
else
if(a==
"d")
//表示將第k個插入的數刪除
else
if(a==
"r")
//表示在鍊錶的最右端插入數x
else
//表示在鍊錶的最左端插入數x
}for
(int i=r[0]
;i!=
1;i=r[i]
) cout
}
陣列模擬鍊錶
單鏈表 實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按...
陣列模擬鍊錶(靜態鍊錶)
為了模擬鍊錶的操作,設定了乙個date 資料 以及cur 相當於指標域 typedef struct list list s size size為陣列大小 我們用s size 1 cur來起頭指標的作用,指向鍊錶的第乙個元素的下標。因為不能直接malloc出來乙個空間,需要s 0 來儲存乙個空的陣列...
陣列模擬鍊錶問題
模擬鍊錶。在圖論題程式設計中,通常要運用鄰接鍊錶資料結構。由於動態指標比靜態的陣列的訪問慢,很多oi選手就用陣列模擬指標。現在就來學習一下這種方法的程式設計。有n個點,編號從1到n。有m條邊,每條邊用連線的2個頂點表示,如 3,8 表示頂點3和8之間的邊 無向邊 請輸出每個頂點通過邊相鄰的頂點。輸入...