資料結構是我當年難以逾越的一道溝…
多年以後,先從最簡單的線段樹下手吧
寫了乙個 洛谷線段樹的模板題 區間加 和 區間求和 很簡單,算是留念吧
//
// created by dell on 2020/3/1.
//#include
#include
#include
#include
#define maxn 100005
#define ll long long
using
namespace std;
struct seg_ment_treetre[maxn <<2]
;void
built
(int now,
int l ,
int r)
int mid = l + r >>1;
built
(now <<
1,l,mid)
;built
(now <<1|
1,mid +
1,r)
; tre[now]
.sum = tre[now <<1]
.sum + tre[now <<1|
1].sum;
}inline
void
pushdown
(int now)
void
modify
(int now,
int l,
int r,
int val)
if(tre[now]
.lazy )
pushdown
(now)
;int mid = tre[now]
.l + tre[now]
.r >>1;
if(l > mid)
modify
(now <<1|
1,l,r,val)
;else
if(r <= mid)
modify
(now <<
1,l,r,val)
;else
tre[now]
.sum = tre[now <<1]
.sum + tre[now <<1|
1].sum;
}ll query
(int now,
int l,
int r)
intmain
(int argc,
char
* ar**)
if(opt ==2)
}break;}
return0;
}
再論 無鎖資料結構(下)
上回說到實現了乙個無鎖的 wrrm 的指標保護演算法,但存在乙個問題是 寫執行緒在更新指標之後,更新游離物件引用計數之前,被強制殺死,會造成讀取執行緒的活鎖,這有悖乙個原則 好像叫什麼 寫無關原則 即使乙個執行緒崩潰也不該對其他執行緒造成太大影響 當然,所有執行緒全部被殺的話,啥演算法都玩完 下面的...
資料結構期末考試再複習
這次是幫別人複習複習資料結構。重新看這些問題,除了圖論的那些演算法,有些東西還真的是忘記了,不過看了下書還好想起來了。1 10個元素的有序表,等概率條件下折半查詢成功的平均查詢長度是29 10。畫出判定樹,其實就是二分轉二叉樹 數量 層數累加即可。2.設有序順序表中的元素依次為 017,094,15...
資料結構之線性表再思考
資料結構學起來妙不可言,賊有意思。很久沒寫部落格了,今天來一篇長的。前面寫的關於線性表的 和思路,經過我多次反覆思考,又有了新的收穫,與大家一起分享。1 線性表的定義 首先要明白什麼是線性表,一種常用且最簡單的資料結構。資料結構通俗來說就是 裝水的杯子,有的是圓的 有的是方的。官方定義 線性表是n個...