Download:Javascript design pattern system explanation and application

The process from “writing good code” to “designing code” is not only the improvement of technology, but also the improvement of programming thinking, among which the most critical is the design pattern, whether to understand and master the design pattern is also one of the standards to measure the ability of programmers.

Suitable for people to work 1-3 years of front-end engineers, or a good foundation of fresh graduates

Knowledge of object-oriented thinking, familiar with jQuery or similar libraries, ES6 syntax, experience with Node.js and NPM. React-vue IL void access(int x) {react-vue IL void access(int x) { x; x=fa(y=x)) { splay(x),rs(x)=y,pushup(x); }} Make_root(x) : make x the root node

IL void makeroot(int x) {// Change x to the root of the tree access(x),splay(x),Rev(x); } Find_root(x) : finds the root node of x

IL int findroot(int x) {// Find the root of the x tree access(x),splay(x); while(ls(x)) pushdown(x),x=ls(x); return x; } Spilt(x,y) : converts the path from x to y into a real-edge path

IL void split(int x,int y) {//y makeroot(x),access(y),splay(y); } Link(x,y) : join (x,y) if x,y is not connected

IL void link(int x,int y) { makeroot(x); if(findroot(y)! =x) fa(x)=y; } Cut(x,y) : if there is a edge between x and y, delete the edge

IL void cut(int x,int y) { split(x,y); if(fa(x)==y&&rs(x)==0) fa(x)=ls(y)=0,pushup(y); } Isroot(x) : checks whether x is the root node of the splay

IL int nroot (int x) / / return 1 to clarify the x is not the root, returns 0 to clarify {x is the root return ls (fa) (x) = = x | | rs (fa) (x) = = x; } P3690 【 template 】Link Cut Tree (dynamic Tree

! [] ()! []()“` 1 #include

2 #define IL inline 3 #define R register int 4 #define ls(x) a[x].ch[0] 5 #define rs(x) a[x].ch[1] 6 #define fa(x) a[x].fa 7 8 using namespace std; 9 const int N=1e5+5,inf=0x3f3f3f3f; 10 11 IL int read() { 12 int f=1; 13 char ch; 14 while((ch=getchar())<‘0’||ch>’9′) if(ch==’-‘) f=-1; 15 int res=ch-‘0′; 16 while((ch=getchar())>=’0’&&ch<=’9’) res=res10+ch-‘0’; 17 return resf; 18 } 19 20 int n,m; 21 struct hh { 22 int ch[2],fa,val,rev,sum; 23 } a[N]; 24 25 IL int chk(int x) {return x==rs(fa(x)); } 26 IL void Rev(int x) {swap(ls(x),rs(x)); a[x].rev^=1; } 27 IL void pushup(int x) {a[x].sum=a[ls(x)].sum^a[rs(x)].sum^a[x].val; } IL 28 int nroot (int x) / / return 1 to clarify the x is not the root, returns 0 to clarify x is the root of 29 {return ls (fa) (x) = = x | | rs (fa) (x) = = x; } 30 31 IL void pushdown(int x) { 32 if(a[x].rev) { 33 a[x].rev=0; 34 if(ls(x)) Rev(ls(x)); 35 if(rs(x)) Rev(rs(x)); 36 } 37 } 38 39 IL void pushall(int x) {