首先定義一下樹的結點
structnode;
前序中序序列建立二叉樹:
//in和pre陣列存放二叉樹的中序和前序遍歷序列
node* build(int prel,int prer,int inl,int
inr)
}x=x-inl;
root->l=build(prel+1,prel+x,inl,inl+x-1
); root->r=build(prel+1+x,prer,inl+x+1
,inr);
return
root;
}
後序中序序列建立二叉樹:
//in和post陣列存放二叉樹的中序和後序遍歷序列
node* build(int postl,int postr,int inl,int
inr)
}x=x-inl; //
x表示左子樹結點的個數
root->l=build(postl,postl+x-1,inl,inl+x-1
); root->r=build(postl+x,postr-1,inl+x+1
,inr);
return
root;
}
層序中序序列建立二叉樹:
//in和level陣列存放二叉樹的中序和層序遍歷序列
node* build(int levl,int levr,int inl,int
inr)
}if(flag==1
)
break
; levl++;
}node* root=(node*)malloc(sizeof
(node));
root->val= in
[k];
k=k-inl;
root->l=build(levl,levr,inl,inl+k-1
); root->r=build(levl,levr,inl+k+1
,inr);
return
root;
}
節流方法 三種
時間戳缺點 第一次直接觸發 最後一次1000ms內無法觸發 function throttle fun,delay function handle window.addeventlistener scroll throttle handle,1000 定時器缺點 第一次延遲觸發 最後一次延遲觸發 f...
三種排序方法
氣泡排序 原理 對乙個數列,我們將它進行輪循和交換,每次輪循出最大數或最小數放在對尾,依次進行迴圈,輪循長度為 1。int num new int for int i 0 i 1 i 插入排序 原理 對乙個數列,我們從第二個數開始,將它與它前面的數字進行比較,每次選出最大 或最小的數放在隊首,因而形...
三種素數篩選方法
第一種 剔除2 3 4 5 6 的倍數 在i從2開始的增一變化過程中,剔除i的倍數即j i j是大於等於2的自然數,j的上限是問題規模m 為了減少重複步驟,可以每當i遞增到等於第乙個沒有被剔除的 素 數時再剔除該數的倍數,重複上述過程至i到達問題規模m的平方根 1 需要說明的三個問題 假設迴圈到第n...