支配樹模板及鄰接鍊錶封裝

2021-08-10 05:13:34 字數 936 閱讀 5024

乙個支配樹的板子,看你們都用vector沒有o2應該會被卡常數。

所以研究了一下鄰接鍊錶封裝。

支配樹的dom一定要開兩倍,因為建樹的時候也要加邊23333

# define n 50010

# define m 100010

struct edge ;

struct graph

inline

void add_edge ( int u, int v ) ; head [u] = newedge ;

}inline edge*& operator ( const

int u )

} ;namespace pbds

inline

void dfs ( int u ) }}

inline

int findfa ( int x )

inline

void build ( const

int s, const

int n )

dom.add_edge ( sdom [u], u ) ;

register

int x = ( ufs [u] = fa [u] ) ;

for ( edge* it = dom [x] ; it ; it = it -> nxt )

dom [x] = 0 ;

}for ( register

int i = 2, u ; u = id [i], i <= idx ; ++ i )

}} t ;

inline

bool cmp ( const

int& u, const

int& v )

}# undef n

# undef m

模板 鍊錶模板 有序鍊錶模板及測試

鍊錶模板 c 程式設計 資料結構與程式設計方法 16.2作為抽象資料型別的鍊錶 header file linkedlist.h ifndef linkedlist h define linkedlist h template struct nodetype template class linke...

乙個封裝的鍊錶模板類

由於工作中經常用到鍊錶,所以自己封裝了個簡單的鍊錶模板類。以便使用 鍊錶模板 pragma once define null 0 template class ptrlist ptrlist ptrlist p void addnode t t 增加結點 void removenode t t 移除...

二叉樹構建及雙向鍊錶

二 從中序與後序遍歷序列構造二叉樹 三 二叉搜尋樹轉雙向鍊錶 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3 9,20 15,7 中序遍歷 inorder 9 3,15 20,7 返回如下的二叉樹 3 9 20 157 def...