日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构之树【完善中】

發(fā)布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构之树【完善中】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、樹的概念

樹是一種分組的層次結(jié)構。

樹的定義:

樹是n(n>=0)個數(shù)據(jù)元素的集合,在任意一棵非空樹中,有如下特征

  • 有且只有一個根結(jié)點(無前驅(qū)結(jié)點)
  • 當n>1時,其他結(jié)點被分為若干個互不相交集合,并且每個集合又是一棵樹
  • 我們可以看到樹的定義引用了集合的概念和迭代的概念。

    二、樹的表示方法

  • 文氏圖
  • 圓括號
  • 凹入法
  • 樹形圖
  • 三、基本術語

  • 結(jié)點:樹的結(jié)點包含一個數(shù)據(jù)元素和若干指向其他子樹的分支
  • 結(jié)點的度:結(jié)點的子節(jié)點的個數(shù)
  • 樹的度:樹的所有結(jié)點的度的最大值
  • 葉子結(jié)點:結(jié)點的度為0的結(jié)點
  • 分支結(jié)點:結(jié)點的度不為0的結(jié)點
  • 兄弟結(jié)點:同一個父結(jié)點下的子節(jié)點稱為兄弟結(jié)點
  • 層數(shù):根節(jié)點的層數(shù)為1,其他結(jié)點的層數(shù)為父節(jié)點的層數(shù)加1
  • 樹的深度:所有結(jié)點層數(shù)的最大值
  • 森林:零棵或者有限棵互不相交的樹稱為森林
  • 有序樹和無序數(shù):結(jié)點的各子節(jié)點從左到右無序(可以互換)的樹稱之為無序樹,否則稱為有序樹
  • 四、二叉樹

    1、二叉樹的定義

    一種特殊的樹,除了有樹的特征外,還有如下特征:

  • 當結(jié)點數(shù)大于0時,該樹由根節(jié)點和兩個子樹組成,分別稱之為左子樹和右子樹
  • 左子樹和右子樹又是二叉樹
  • 2、二叉樹的基本操作

  • CreateTree創(chuàng)建一棵二叉樹
  • ShowTree用凹入法或者圓括號法顯示一棵二叉樹
  • PreOrder按照先序(根,左,右)遍歷一棵二叉樹上的所有結(jié)點
  • InOrder按照中序(左,根,右)遍歷一棵二叉樹上的所有結(jié)點
  • PostOrder按照后序(左,右,根)遍歷一棵二叉樹上的所有結(jié)點
  • LevelOrder按層次遍歷一棵二叉樹上的所有結(jié)點
  • Leafnum求一棵二叉樹上的所有葉子結(jié)點
  • TreeDepth求一棵二叉樹的深度
  • 3、二叉樹的性質(zhì)

    • 一棵二叉樹的第i層至多有2分之i-1個結(jié)點
    • 深度為h的一棵二叉樹至多有2分之h-1個結(jié)點
    • 對于一棵有n個結(jié)點的完全二叉樹,若按照滿二叉樹的方式對結(jié)點進行編號,對于任意編號為i的結(jié)點,有如下性質(zhì)
  • i等于1的結(jié)點為根結(jié)點,當i>1時,該結(jié)點的父節(jié)點編號為i/2
  • 當2i<=n時,該結(jié)點的左子結(jié)點編號為2i,當2i>n時,該結(jié)點沒有左子節(jié)點
  • 當2i+1<=n時,該結(jié)點的右子節(jié)點編號為2i+1,當2i+1>n時,該結(jié)點沒有右子節(jié)點
    • 具有n(n>0)個結(jié)點的完全二叉樹,其深度為floor(log2n)+1,floor表示向下取整
    • 對于一棵非空的二叉樹,設結(jié)點的度為0,1,2的結(jié)點的個數(shù)分別為n0,n1,n2,那么有:n0=n2+1

    ?

    總結(jié)

    以上是生活随笔為你收集整理的数据结构之树【完善中】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。