SBT 模板不完全總結,後續待填

2022-03-28 07:00:57 字數 1493 閱讀 1967

1 #include

2 #include

3 #include

4 #include

5#define n 100005

6using

namespace std;

7struct sbt

14 }t[n];

15int root,tot; //

根的位置以及節點個數

16//

左旋轉處理

17void left_rot(int &x)

25//

右旋轉處理

26void right_rot(int &x)

34//

調整處理

35void maintain(int &r,bool flag)

43else

44return;

45     } 

46else

53else

54return;

55     }

56//

更新子樹,然後再更新根,直到平衡為止

57    maintain(t[r].left,false);

58     maintain(t[r].right,true);

59     maintain(r,false);

60     maintain(r,true);

61 }

62//

插入新節點

63void insert(int &r,int k)

69else

78 }

79//

刪除結點,利用的是前驅替換

80int remove(int &r,int k)

93else remove(k94 }

95void delete(int &r,int delay,int min_val)

101else

105 }

106//

取得最大值,即一直遍歷到最右的結點

107int get_max(int &r)

112//

取得最小值,即一直遍歷到最左的結點

113int get_min(int &r)

118//

獲得前驅

119int get_pre(int &r,int y,int k)

126//

獲得後繼

127int get_next(int &r,int y,int k)

134//

取得第k小的數,注:暫不能解決有重複數的

135int get_min_kth(int &r,int k)

141//

取得第k大的數

142int get_max_kth(int &r,int k)

148//

獲得結點的名次

149int get_rank(int &r,int k)

157//

排序158

void inorder(int &r)

不完全型別

c 允許在乙個 檔案中存放多個類,但這樣往往不便於類的管理,所以一向是提倡乙個檔案中只存放乙個類。不過呢,隨著類規模的不斷膨脹,乙個檔案中存放乙個類也有些顯得臃腫,或者是在某個角度上不便於 的組織。因此,c 2.0中引入了不完全型別的概念,即啟用了新的修飾符partial。借助該修飾符,我們可以在多...

不完全型別

不完全型別指 函式之外 型別的大小不能被確定的型別 總結一下,c的型別分為 結構體的宣告就是乙個不完全型別的典型例子。struct woman tag struct man tag struct woman tag 這樣是沒問題的。如果將man tag結構中的struct woman tag wif...

不完全型別

有時候我們在一些編譯器寫 的時候會碰見不完全型別這個編譯錯誤,那麼什麼是不完全型別,為啥會出現呢 不完全型別指 函式之外 型別的大小不能被確定的型別 只能以有限方式使用。不能定義該型別的物件。不完全型別只能用於定義指向該型別的指標及引用 1 或者用於宣告使用該型別作為形參型別或者返回值型別。c的型別...