樹的算法基礎知識

什么是樹:

樹是n(n>=0)個結點的有限集。n=0時稱為空樹。在任意一棵非空樹中:

  • 有且僅有一個特定的稱為根的結點
  • 當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1、T2、......、Tm,其中每一個集合本身又是一棵樹,并且稱為根的子樹
  • 樹的度:即選取整個樹中,出現最大分支的數量為整個樹的度
  • 結點間的關系:左右分支稱為結點的孩子,而結點稱為左右分支的雙親,左右分支又互稱為兄弟,祖先則是表示從根到該節點所經分支上的所有結點,同一層結點但不同分支稱為堂兄弟。

樹的表示:

雙親表示法:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?data? | ? parent

其中parent列用雙親的編號表示

孩子表示法:? ? ? ? ? ? ? ? ? ? ? ? ? ?data | child1 | child2 | child3 | ..... | childn

下圖是鏈表表示方法:

孩子雙親表示法:以上圖為基礎加上一列表示雙親編號

孩子兄弟表示法:? ? ? ? ? ? ? ? ? ? ? ? ? ?data?| firstchild | rightsilb

二叉樹:

二叉樹是n(n>=0)個結點的有限集合(最多有兩個結點),該集合或者為空集(稱為空二叉樹)。或者由一個根結點和兩棵互不相交的、分別稱為根結點的左子樹和右子樹的二叉樹組成。

特殊二叉樹:

斜樹:呈現出來是一條直線的樹

滿二叉樹:

完全二叉樹: 葉子從左向右排序的形態

用數組表示:

  • 推論:對于位置為K的結點 左子結點=2*k+1,右子結點=2*(k+1)
  • 推論:最后一個非葉結點的位置為(N/2)-1,N為數組長度

二叉樹表示:

data | leftchild?| rightchild

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22336.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22336.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22336.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ElasticSearch學習筆記之三:Logstash數據分析

第3章 Logstash數據分析 Logstash使用管道方式進行日志的搜集處理和輸出。有點類似*NIX系統的管道命令 xxx | ccc | ddd,xxx執行完了會執行ccc,然后執行ddd。 在logstash中,包括了三個階段: 輸入input --> 處理filter(不是必須…

異或炸彈(easy)(牛客小白月賽95)

題目鏈接: D-異或炸彈(easy)_牛客小白月賽95 (nowcoder.com) 題目: 題目分析: 一看 還以為是二維差分的題呢 到后來才發現是一維差分問題 這里的距離是 曼哈頓距離 dis abs(x - xi) abs(y - yi) 暴力的做法 就是枚舉 n * n 個…

word-海報制作

1、確定海報的尺寸大小 2、創建主題顏色 設計-顏色-自定義顏色-柑橘rgb值改變著色1-著色6的顏色 3、將文字添加至文本框,更改字體顏色、大小和格式 4、添加背景水印:插入-形狀-文本框 5、組合全部元素 圖片素材網址:

Power BI前端設計:深度探索與實戰技巧

Power BI前端設計:深度探索與實戰技巧 Power BI作為一款強大的商業智能工具,其前端設計對于用戶體驗和數據可視化效果至關重要。本文將深入探討Power BI前端設計的四個關鍵方面、五個實用技巧、六個設計要素以及七個注意事項,助您提升Power …

學習分享-如何避免 Apache ShardingSphere 中的笛卡爾積現象

前言 Apache ShardingSphere 是一個開源的分布式數據庫中間件,旨在通過數據分片、分布式事務、分布式治理等技術,提升數據庫系統的性能和可擴展性。然而,最近在使用 ShardingSphere 進行分庫分表并多表查詢時,出現了笛卡爾積現象…

Spark Streaming 概述及入門案例

一、介紹 1. 不同的數據處理 從數據處理的方式: 流式數據處理(Streaming)批量數據處理(Batch) 從數據處理的延遲: 實時數據處理(毫秒級別)離線數據處理(小時或天級別) 2. 簡介 SparkStreaming 是一個準實時(秒或分鐘級別)、微批量的數據處理框架Spa…

在Red Hat Enterprise Linux 9上使用Docker快速安裝并部署RocketMQ

在Red Hat Enterprise Linux 9上快速安裝和部署RocketMQ可以按照以下步驟進行: 1. 安裝Docker 首先,確保Docker已經安裝在你的系統上。 更新系統包并安裝依賴項: sudo yum update -y sudo yum install -y yum-utils device-mapper-persiste…

2024年5月份面試總結

2024年5月份找工作/面試總結: 本人前段時間寫了剛過完年后的一個月內找工作的情況,請查看https://blog.csdn.net/zgaoq/article/details/136236788?spm1001.2014.3001.5501 但是后續寫的總結被和諧了,不知道這篇文章能不能發出來。 1、5月份…

系統架構設計師【第19章】: 大數據架構設計理論與實踐 (核心總結)

文章目錄 19.1 傳統數據處理系統存在的問題19.2 大數據處理系統架構分析19.2.1 大數據處理系統面臨挑戰19.2.2 大數據處理系統架構特征 19.3 Lambda架構19.3.1 Lambda架構對大數據處理系統的理解19.3.2 Lambda架構應用場景19.3.3 Lambda架構介紹19.3.4  Lambda架構的實…

數據庫的換行符到前端不展示了

是這樣的原本數據庫中的數據都是帶有\n換行符的但是頁面卻一直不展示 解決辦法 <el-drawer title"預覽" :visible.sync"drawer" :with-header"false"><div v-for"(item, index) in cardArray" :key"index"><…

如何將 Vue 應用程序部署到 Cloudflare Pages

在現代 Web 開發中&#xff0c;Vue.js 已經成為了一個非常受歡迎的前端框架。它的簡潔、高效和靈活性使得開發人員可以輕松構建出色的用戶界面和交互體驗。而 Cloudflare Pages 提供了一個簡單而強大的方式來托管和部署靜態網站和應用程序。本文將介紹如何將 Vue 應用程序部署到…

Android常見內存泄漏場景總結

一、非靜態內部類造成的內存泄漏 造成原因&#xff1a;非靜態內部類默認會持有外部類的引用&#xff0c;如果內部類的生命周期超過了外部類就會造成內存泄漏。 場景&#xff1a;當Activity銷毀后&#xff0c;由于內部類中存在異步耗時任務還在執行&#xff0c;導致Activity實…

[補題記錄]Leetcode 3.無重復字符的最長子串

傳送門&#xff1a;無重復字符的最長子串 Problem/題意 給一個由英文、數字、符號、空格組成的字符串&#xff0c;找出其中不含有重復字符的最長子串的長度。 比如&#xff1a;abb 包含了重復字符 b&#xff1b;abc 沒有包含重復字符。 注意是子串&#xff0c;不是子序列。 …

內網安全:橫向傳遞攻擊(PTH || PTK || PTT 哈希票據傳遞)

內網安全&#xff1a;橫向傳遞攻擊. 橫向移動就是在拿下對方一臺主機后&#xff0c;以拿下的那臺主機作為跳板&#xff0c;對內網的其他主機再進行后面滲透&#xff0c;利用既有的資源嘗試獲取更多的憑據、更高的權限&#xff0c;一步一步拿下更多的主機&#xff0c;進而達到控…

CodeMirror 創建標簽計算編輯器

在日常開發中對于一些數據計算場景可能會遇到標簽計算的需求&#xff0c;下面關于如何使用CodeMirror實現標簽計算編輯功能。 1&#xff0c;結果圖 2&#xff0c;主體代碼邏輯 大家只需要復制粘貼主要codeMirror使用邏輯即可 <template><el-dialogref"dialogRe…

抖店商家疑惑,自然流量突然下滑,為什么呢?

大家好&#xff0c;我是噴火龍。 很多的抖店商家會遇到一種情況&#xff0c;那就是自己店鋪的流量好好的&#xff0c;不知道怎么的就突然沒流量了&#xff0c;各方面的數據都斷崖式的下降。 為什么會這樣呢&#xff1f;原因有以下幾點&#xff0c;大家可以檢查一下&#xff0…

低代碼和零代碼軟件時代質量管理(QM)和質量管理系統(QMS)

【前言】 質量控制過程的目的是為了確保產品的制造標準得到保持和改進。質量控制過程使公司能夠滿足客戶的期望&#xff0c;同時確保產品質量的一致水平。采用這些標準創造了一種公司文化&#xff0c;鼓勵所有員工努力實現高質量的生產標準。低代碼和零代碼軟件可以成為質量控…

【網絡通信層】華為云連接MQTT設備

本文介紹華為云設備連接到設備的操作。 目錄 一、在華為云創建設備 二、連接MQTT 三、通信 一、在華為云創建設備 現在華為云上可以免費使用部分受限服務&#xff0c;包括免費創建自己的設備連接。 首先&#xff0c;登錄華為云平臺共建智能世界云底座-華為云 (huaweicl…

徐州服務器機柜租用的好處

隨著服務器的廣泛應用&#xff0c;越來越多的企業都選擇服務器托管和租用等服務&#xff0c;在選擇服務器租用之前我們還需要進行機柜租用&#xff0c;便于放置所適用的服務器&#xff0c;那么企業選擇徐州服務器機柜租用的好處有哪些呢&#xff1f; 選擇徐州服務器機柜租用&am…

Qt Window Dialog 無標題欄 ,無邊框,可拖動

1.效果&#xff1a; 2. 主要實現步驟&#xff1a; 設置窗口 flag&#xff1a; this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); 創建變量存儲位置 QPoint m_dragPosition; 對鼠標左鍵按下和移動事件做處理 void DraggableDialog::mousePre…