2018 6 10資料結構串講 HugeGun

2022-05-11 06:01:59 字數 1790 閱讀 8529

@echo

off: )shuju

test

test_

fc test.out test.ans

iferrorlevel == 1 pause

goto )

對拍

#includeint a[100010],next[100010],pre[100010

],head,last;

void add(int x,int y)//

在標號為x的數後面插入標號為y的數

void del(int x)//

在鍊錶中刪掉標號為x的數

intmain()

鍊錶

#includeint head[100010],next[200020],poi[200020],w[200020

],ed;

void add(int a,int b,int c,int d)//

在a,b之間加一條權值為c的邊,d==1是為無向邊,d==0是為有向邊

void dfs(int x,int f)//

遍歷一棵樹,f是x的父親

intmain()

鄰接表

1 #include2

int ch[100010][2],w[100010

],ed,root;

3void add(int *k,intx)4

10int d=x>w[*k];

11 add(&ch[*k][d],x);12}

13int

main()

14

bst

1 #include2 #include3

int ch[100010][2],w[100010],c[100010],s[100010],r[100010

],ed,root;

4void maintain(int x)

5void rotate(int *k,intd)6

13void add(int *k,int

x)14

20 s[*k]++;

21if(w[*k]==x)

22int d=x>w[*k];

23 add(&ch[*k][d],x);

24if(r[ch[*k][d]]1

);25}26

int del(int *k,int

x)27

32if(!ch[*k][0])

33if(!ch[*k][1])

34if(r[ch[*k][0]]1]])rotate(k,1

);35

else rotate(k,0

);36

return

del(k,x);37}

38int d=x>w[*k];

39if(del(&ch[*k][d],x))

40return0;

41}42int findrank(int

x)43

52return

ret;53}

54int findwei(int

x)55

64return0;

65}66int findqian(int

x)67

74return

ret;75}

76int findhou(int

x)77

84return

ret;85}

86int

main()

87

treap

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 01 資料與資料結構

1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...