中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站域名費(fèi)用怎么做帳廣州企業(yè)網(wǎng)站推廣

網(wǎng)站域名費(fèi)用怎么做帳,廣州企業(yè)網(wǎng)站推廣,網(wǎng)站怎么做營(yíng)銷,營(yíng)銷網(wǎng)站開(kāi)發(fā)渠道有哪些目錄 一、樹(shù)型結(jié)構(gòu) 二、二叉樹(shù) 2.1 概念 2.2 特殊的二叉樹(shù) 2.3 二叉樹(shù)的性質(zhì) 2.4 二叉樹(shù)的存儲(chǔ) 2.5 遍歷二叉樹(shù) 2.6 操作二叉樹(shù) 總結(jié) 一、樹(shù)型結(jié)構(gòu) 樹(shù)是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由 n(n>0) 個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合,一棵 n 個(gè)…

目錄

一、樹(shù)型結(jié)構(gòu)

二、二叉樹(shù)

2.1 概念

2.2?特殊的二叉樹(shù)

?2.3?二叉樹(shù)的性質(zhì)

2.4 二叉樹(shù)的存儲(chǔ)

2.5 遍歷二叉樹(shù)

2.6 操作二叉樹(shù)

總結(jié)


一、樹(shù)型結(jié)構(gòu)

樹(shù)是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由 n(n>=0) 個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合,一棵 n 個(gè)結(jié)點(diǎn)的樹(shù)有 n-1 條邊

  • 結(jié)點(diǎn)的度:一個(gè)節(jié)點(diǎn)具有的子樹(shù)個(gè)數(shù)稱為該結(jié)點(diǎn)的度。如上圖,結(jié)點(diǎn) A 的度為 6。
  • 樹(shù)的度:一棵樹(shù)中,所有結(jié)點(diǎn)度的最大值稱為樹(shù)的度。如上圖,樹(shù)的度為 6。
  • 葉子結(jié)點(diǎn) (終端結(jié)點(diǎn)):度為 0 的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。如上圖,B、C、H、I、N 等結(jié)點(diǎn)為葉子結(jié)點(diǎn)。
  • 父結(jié)點(diǎn) (雙親結(jié)點(diǎn)):若一個(gè)結(jié)點(diǎn)含有子結(jié)點(diǎn),則稱該結(jié)點(diǎn)為其子結(jié)點(diǎn)的父節(jié)點(diǎn)。如上圖,A 是 B 的父結(jié)點(diǎn)。
  • 根結(jié)點(diǎn):是每棵樹(shù)的起始結(jié)點(diǎn),即沒(méi)有父結(jié)點(diǎn)的結(jié)點(diǎn)。如上圖,A 為根結(jié)點(diǎn)。
  • 子結(jié)點(diǎn) (孩子結(jié)點(diǎn)):一個(gè)結(jié)點(diǎn)含有的子樹(shù)的根結(jié)點(diǎn),稱為該結(jié)點(diǎn)的子節(jié)點(diǎn)。如上圖,B 是 A 的子結(jié)點(diǎn)。
  • 結(jié)點(diǎn)的層次:從根結(jié)點(diǎn)開(kāi)始,根結(jié)點(diǎn)為第 1 層,根結(jié)點(diǎn)的子結(jié)點(diǎn)為第 2 層,以此類推。如上圖,結(jié)點(diǎn) A 為第 1 層,結(jié)點(diǎn) B、C、D 等為第 2 層。
  • 樹(shù)的高度 (深度):樹(shù)中結(jié)點(diǎn)的最大層次。如上圖,樹(shù)的高度為 4。
  • 分支結(jié)點(diǎn):度不為 0 的結(jié)點(diǎn)。
  • 兄弟結(jié)點(diǎn):具有相同父結(jié)點(diǎn)的結(jié)點(diǎn)互為兄弟。
  • 堂兄弟結(jié)點(diǎn):父結(jié)點(diǎn)在同一層的結(jié)點(diǎn)互為堂兄弟。
  • 結(jié)點(diǎn)的祖先:從根結(jié)點(diǎn)到該結(jié)點(diǎn)分支上的所有結(jié)點(diǎn)。如上圖,A 是所有結(jié)點(diǎn)的祖先。
  • 子孫:以某結(jié)點(diǎn)為根的子樹(shù)中任一結(jié)點(diǎn)都稱為該結(jié)點(diǎn)的子孫。如上圖,所有結(jié)點(diǎn)都是 A 的子孫。
  • 森林:由 m(m>=0) 棵互不相交的樹(shù)組成的集合稱為森林。

二、二叉樹(shù)

2.1 概念

一棵二叉樹(shù)是結(jié)點(diǎn)的一個(gè)有限集合,二叉樹(shù)有兩種情況:

① 空樹(shù)

由一個(gè)根結(jié)點(diǎn)加上兩棵分別稱為左子樹(shù)右子樹(shù)的二叉樹(shù)組成。

【特點(diǎn)】

1、二叉樹(shù)不存在度大于 2 的結(jié)點(diǎn);

2、二叉樹(shù)的子樹(shù)有左右之分,次序不能顛倒,因此二叉樹(shù)是有序樹(shù)。


2.2?特殊的二叉樹(shù)

1、滿二叉樹(shù):若一棵二叉樹(shù)每層的結(jié)點(diǎn)數(shù)都達(dá)到最大值,則這棵樹(shù)就是滿二叉樹(shù)。即若一棵二叉樹(shù)的高度為 k,且結(jié)點(diǎn)總數(shù)是?2^{k}-1,則它就是滿二叉樹(shù)。

2、完全二叉樹(shù):滿二叉樹(shù)是一種特殊的完全二叉樹(shù)。對(duì)于高度為 K,有 n 個(gè)結(jié)點(diǎn)的二叉樹(shù),當(dāng)且僅當(dāng)其每個(gè)結(jié)點(diǎn)都與高度為 k?的滿二叉樹(shù)中編號(hào)從 0 至 n-1 的結(jié)點(diǎn)一一對(duì)應(yīng)時(shí)稱為完全二叉樹(shù)。


?2.3?二叉樹(shù)的性質(zhì)

  • 一棵非空二叉樹(shù)的第 k?層上最多有?2^{k-1}(k>0)?個(gè)結(jié)點(diǎn);
  • 高度為 k 的二叉樹(shù)最大結(jié)點(diǎn)數(shù)為?2^{k}-1(k>=0)
  • 葉子結(jié)點(diǎn)個(gè)數(shù)為?n_{0}度為 2 的結(jié)點(diǎn)個(gè)數(shù)為?n_{2},則有?n_{0} = n_{2}+1
  • 有 n 個(gè)結(jié)點(diǎn)的完全二叉樹(shù)高度為?[log_{2}n]+1("[]"為取整)
  • 一棵有 n 個(gè)結(jié)點(diǎn)的完全二叉樹(shù),對(duì)于其編號(hào)為 i 的結(jié)點(diǎn)有:
  • 若 i > 0,父結(jié)點(diǎn)編號(hào):[(i-1) / 2];若 i = 0,則 i 為根結(jié)點(diǎn)編號(hào),無(wú)父結(jié)點(diǎn)。
  • 若 2i+1 <?n,左孩子編號(hào):2i+1;反之無(wú)左孩子。
  • 若 2i+2?<?n,右孩子編號(hào):2i+2;反之無(wú)右孩子。

2.4 二叉樹(shù)的存儲(chǔ)

二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。

二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)是通過(guò)一個(gè)一個(gè)結(jié)點(diǎn)引用構(gòu)造出的,例如,孩子表示法和孩子雙親表示法:

    //孩子表示法class Node {int val; //數(shù)據(jù)域Node left; //左孩子Node right; //右孩子}//孩子雙親表示法class Node {int val; //數(shù)據(jù)域Node left; //左孩子Node right; //右孩子Node parent; //當(dāng)前節(jié)點(diǎn)的父親節(jié)點(diǎn)}

2.5 遍歷二叉樹(shù)

【前中后序遍歷】

前序(NLR):根結(jié)點(diǎn) → 左子樹(shù)?→ 右子樹(shù);(根左右)

中序(LNR):左子樹(shù)?→ 根結(jié)點(diǎn) → 右子樹(shù);(左根右)

后序(LRN):左子樹(shù)?→ 右子樹(shù) → 根結(jié)點(diǎn);(左右根)

前序:ABDEGCF

中序:DBGEAFC

后序:DGEBFCA

public class BinaryTree {//孩子表示法static class TreeNode {public String val; //數(shù)據(jù)域public TreeNode left; //左孩子public TreeNode right; //右孩子public TreeNode(String val) {this.val = val;}}//構(gòu)建樹(shù),返回根結(jié)點(diǎn)public TreeNode createTree() {TreeNode A = new TreeNode("A");TreeNode B = new TreeNode("B");TreeNode C = new TreeNode("C");TreeNode D = new TreeNode("D");TreeNode E = new TreeNode("E");TreeNode F = new TreeNode("F");TreeNode G = new TreeNode("G");A.left = B;A.right = C;B.left = D;B.right = E;E.left = G;C.left = F;return A;}//前序遍歷public void preOrder(TreeNode root) {//若為空樹(shù),返回if (root == null) {return;}System.out.print(root.val + " "); //根preOrder(root.left); //左preOrder(root.right); //右}//中序遍歷public void inOrder(TreeNode root) {//若為空樹(shù),返回if (root == null) {return;}inOrder(root.left);//左System.out.print(root.val + " ");//根inOrder(root.right);//右}//后序遍歷public void postOrder(TreeNode root) {//若為空樹(shù),返回if (root == null) {return;}postOrder(root.left);//左postOrder(root.right);//右System.out.print(root.val + " ");//根}
}public class Main {public static void main(String[] args) {//創(chuàng)建二叉樹(shù)對(duì)象BinaryTree binaryTree = new BinaryTree();//構(gòu)建二叉樹(shù)BinaryTree.TreeNode root = binaryTree.createTree();binaryTree.preOrder(root);//前序:A B D E G C F System.out.println();binaryTree.inOrder(root);//中序:D B G E A F CSystem.out.println();binaryTree.postOrder(root);//后序:D G E B F C A }
}

【層序遍歷】?

層序遍歷:即自上而下、從左至右逐層訪問(wèn)樹(shù)的結(jié)點(diǎn)的遍歷過(guò)程。


2.6 操作二叉樹(shù)

采用子問(wèn)題思路來(lái)實(shí)現(xiàn)二叉樹(shù)的操作。

1、獲取樹(shù)中結(jié)點(diǎn)個(gè)數(shù)

    //獲取樹(shù)中結(jié)點(diǎn)的個(gè)數(shù)public int size(TreeNode root) {//若為空樹(shù),返回if (root == null) {return 0;}//返回根結(jié)點(diǎn)的左子樹(shù) + 根結(jié)點(diǎn)的右子樹(shù) + 根結(jié)點(diǎn)本身return size(root.left) + size(root.right) + 1;}

2、獲取樹(shù)中葉子結(jié)點(diǎn)個(gè)數(shù)

    //獲取葉子結(jié)點(diǎn)的個(gè)數(shù)public int getLeafNodeCount(TreeNode root) {//若為空樹(shù),返回if (root == null) {return 0;}//若無(wú)左子樹(shù)與右子樹(shù),便是葉子結(jié)點(diǎn)if (root.left == null && root.right == null) {//是葉子結(jié)點(diǎn),返回 1return 1;}//返回根結(jié)點(diǎn)的左子樹(shù)、右子樹(shù)中的葉子結(jié)點(diǎn)return getLeafNodeCount(root.left) + getLeafNodeCount(root.right);}

?3、獲取第 K 層結(jié)點(diǎn)個(gè)數(shù)

    //獲取第 K 層結(jié)點(diǎn)的個(gè)數(shù)public int getKLevelNodeCount(TreeNode root, int k) {//若為空樹(shù),返回if (root == null) {return 0;}//第 K 層是第 1 層根結(jié)點(diǎn)的第 K-1 層,//也是第 2 層結(jié)點(diǎn)的第 K-2 層。//即第 K 層結(jié)點(diǎn)的第 1 層,if (k == 1) {return 1;}//返回根結(jié)點(diǎn)的左子樹(shù)、右子樹(shù)的第 K 層結(jié)點(diǎn)return getKLevelNodeCount(root.left, k-1) + getKLevelNodeCount(root.right, k-1);}

?4、獲取二叉樹(shù)的高度

    //獲取二叉樹(shù)的高度public int getHeight(TreeNode root) {//若為空樹(shù),返回if (root == null) {return 0;}//左子樹(shù)高度int leftHeight = getHeight(root.left);//右子樹(shù)高度int rightHeight = getHeight(root.right);//根結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)對(duì)比,//誰(shuí)高返回誰(shuí) + 根結(jié)點(diǎn)本身,即左(右)子樹(shù)高度 + 1。return leftHeight > rightHeight ? leftHeight+1 : rightHeight+1;}

5、檢測(cè)值為 val 的元素是否存在

    //檢測(cè)值為 val 的元素是否存在public TreeNode find(TreeNode root, String val) {//若為空樹(shù),返回if (root == null) {return null;}//判斷根結(jié)點(diǎn)元素if (root.val == val) {return root;}//判斷根結(jié)點(diǎn)的左子樹(shù)TreeNode left = find(root.left, val);if (left != null) {return left;}//判斷根結(jié)點(diǎn)的右子樹(shù)TreeNode right = find(root.right, val);if (right != null) {return right;}return null;}

總結(jié)

1、一棵 n 個(gè)結(jié)點(diǎn)的樹(shù)有 n-1 條邊。

2、二叉樹(shù)不存在度大于 2 的結(jié)點(diǎn)。

3、二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)分為:順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。

4、前序(根左右);中序(左根右);后序(左右根)。

5、層序遍歷:自上而下、從左至右逐層訪問(wèn)樹(shù)的結(jié)點(diǎn)的遍歷過(guò)程。

http://m.risenshineclean.com/news/63515.html

相關(guān)文章:

  • 網(wǎng)站開(kāi)發(fā)服務(wù)合同寧波seo優(yōu)化定制
  • 怎么完整下載網(wǎng)站模板商業(yè)計(jì)劃書(shū)
  • c 網(wǎng)站開(kāi)發(fā)框架2023年免費(fèi)b站推廣大全
  • jsp做網(wǎng)站注冊(cè)頁(yè)面今日頭條最新版
  • 為什么網(wǎng)站顯示在建設(shè)中百度一下首頁(yè)登錄入口
  • 做網(wǎng)站的知名品牌公司需要多少錢
  • 杭州優(yōu)質(zhì)網(wǎng)站建設(shè)八大營(yíng)銷模式有哪幾種
  • 南寧培訓(xùn)網(wǎng)站建設(shè)五種網(wǎng)絡(luò)營(yíng)銷推廣方法
  • 義烏品牌網(wǎng)站建設(shè)網(wǎng)站開(kāi)發(fā)培訓(xùn)
  • 網(wǎng)站外包價(jià)格淘寶關(guān)鍵詞優(yōu)化
  • 外賣網(wǎng)站建設(shè)的畢業(yè)論文seo網(wǎng)站推廣報(bào)價(jià)
  • 怎么做消費(fèi)一卡通網(wǎng)站電商網(wǎng)站建設(shè)教程
  • 下載網(wǎng)站后怎么做社群營(yíng)銷的具體方法
  • 網(wǎng)站建設(shè) 要維護(hù)么谷歌瀏覽器 免費(fèi)下載
  • WordPress去掉新聞seo營(yíng)銷服務(wù)
  • 東營(yíng)今日頭條信陽(yáng)seo
  • iis 網(wǎng)站訪問(wèn)權(quán)限 設(shè)置域名注冊(cè)網(wǎng)站查詢
  • qq空間怎么做網(wǎng)站網(wǎng)上推廣培訓(xùn)
  • 電商資源網(wǎng)站seo快速排名軟件平臺(tái)
  • 手機(jī)網(wǎng)站頁(yè)面制作seo是什么職業(yè)
  • WordPress朗讀免費(fèi)seo網(wǎng)站診斷免費(fèi)
  • 在哪里做網(wǎng)站數(shù)據(jù)網(wǎng)站有哪些
  • 有哪些做排球比賽視頻網(wǎng)站網(wǎng)站建設(shè)是干嘛的
  • 順義區(qū)網(wǎng)站建設(shè)百度熱點(diǎn)榜單
  • iis 網(wǎng)站制作蘇州做網(wǎng)站的專業(yè)公司
  • 武漢微信網(wǎng)站開(kāi)發(fā)足球積分排行榜最新
  • 佛山 網(wǎng)站建設(shè)百度 營(yíng)銷怎么收費(fèi)
  • 蕪湖市住房和城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站職業(yè)技能培訓(xùn)網(wǎng)站
  • 市場(chǎng)監(jiān)督管理局不處理問(wèn)題怎么辦外貿(mào)網(wǎng)站谷歌seo
  • 網(wǎng)站如何做視頻上海網(wǎng)絡(luò)推廣渠道