例題6-4 破損的鍵盤
//鍊錶
#include
#include
const int maxn=
100000+5
;int last,cur,
next
[maxn]
;//游標位於cur號字母的後面
char s[maxn]
;int main()}
for(
int i=
next[0
];i!=
0;i=
next
[i])
printf(
"%c"
,s[i]);
printf(
"\n");
}return0;
}
例題6-5 移動盒子
//雙向鍊錶
#include
#include
using namespace std;
const
int maxn=
100000+5
;int n,left[maxn]
,right[maxn]
;//n個盒子
inline
void
link
(int l,
int r)
intmain()
right[0]
=1; left[0]
=n;//初始化
int op,x,y,inv=0;
while
(m--
)else
if(op==2)
else
if(op==3)
else}}
}int b=0;
long
long ans=0;
for(
int i=
1;i<=n;i++)if
(inv && n%2==
0) ans=
(long
long
)n*(n+1)
/2-ans;
//如果鏈條反轉了奇數次且盒子數量是偶數,那麼ans就是需要做這個操作
printf
("case %d:%lld\n"
,++kase,ans);}
return0;
}
參考: 資料結構練習 鍊錶
最近開始學資料結構,準備把做的習題 屯部落格裡。pragma once include include using namespace std 復合類 class list class linknode class list 巢狀類 class list linknode first 用struct...
資料結構 鍊錶基礎練習題
1 反轉鍊錶 定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。definition for singly linked list.function listnode val param head return var reverselist function head ret...
資料結構基礎 鍊錶
1.鍊錶 表明這種資料結構是一種鏈式儲存結構 它不同於線性表的順序儲存結構。鍊錶的相鄰元素 在物理記憶體中不連續 所以這種結構可以充分利用一些系統的記憶體碎片來完成一些事務,即如果採用鍊錶結構有時可以解決當連續記憶體分配不足時的問題。鍊錶支援插入和刪除這兩種操作,並且 刪除 插入鍊錶頭部 尾部結點的...