LaTeX應用 畫個複雜的二叉樹

2021-10-14 16:42:07 字數 1948 閱讀 6059

前面一篇文章已經說過關於用latex畫樹形結構的問題,那個二叉樹相對比較簡單,沒有替他的元素混雜。這裡再畫乙個複雜點的案例,新增一些可能在實際應用中需要的元素,比如有頭節點,表示整個二叉樹的開始位置等。

在每個節點是否可以劃分為多個,這也是乙個常見的需求,具體的實現效果如圖所示。       

下面是實現過程的主要**部分,每條**的具體語法這裡不一一解釋了,通過規範的排版,基本上已經將每條**的含**釋清楚了,請耐心點閱讀。這些**可以直接執行,實現如圖所示效果,可以當做模板應用。

\begin[

scale = 1.5, transform shape, thick,

every node/.style = ,

grow = down, % alignment of characters

level 1/.style = ,

level 2/.style = ,

level 3/.style = ,

level distance = 1.25cm

] \node[fill = gray!40, shape = rectangle, rounded corners,

minimum width = 2cm, font = \sffamily]

child \nodepart \rotatebox}

child

child }

child }

}child

child }

child }}};

% filling the root (start)

\begin[on background layer, rotate=30]

\fill[head] (start.base) ([xshift = 0mm]start.east) arc (0:180:5mm)

-- cycle;

\fill[tail] (start.base) ([xshift = 0pt]start.west) arc (180:360:5mm)

-- cycle;

\end

% labels

\begin[nodes = ]

\path (start) -- (a) node [near start, left] ;

\path (a) -- (b) node [near start, left] ;

\path (a) -- (c) node [near start, right] ;

\path (start) -- (d) node [near start, right] ;

\path (d) -- (e) node [near start, left] ;

\path (d) -- (f) node [near start, right] ;

\begin[nodes = ]

\node [name = x] at (b) ;

\node at (c) ;

\node [name = y] at (e) ;

\node at (f) ;

\end

\draw[densely dashed, rounded corners, thin]

(x.south west) rectangle (y.north east);

\end

\end

在導言區新增幾行**

\usepackage

\usetikzlibrary

\requirepackage

\tikzset},

tail/.style = }

}

線索二叉樹怎麼畫 二叉樹

二叉樹是一種特殊的樹,簡單說每個結點 最多 有兩個子樹,且左右子樹是有順序的。對於一棵具有 完全二叉樹。在二叉樹的第 深度為 對於任何一棵二叉樹 t 如果其終端結點數為 度為 2的結點數為 則 對於滿二叉樹這一性質很好證明 對於普通二叉樹該怎麼理解呢?假設在 層存在度為1的結點,則終端結點減少 個,...

二叉樹的應用 二叉樹遍歷的應用

在以上討論的遍歷演算法中,訪問結點的資料域資訊,即操作visite bt data 具有更一般的意義,需根據具體問題,對bt 資料進行不同的操作。下面介紹幾個遍歷操作的典型應用。search bt,x 在bt 為二叉樹的根結點指標的二叉樹中查詢資料元素x。查詢成功時返回該結點的指標 查詢失敗時返回空...

二叉樹應用

1 專案要求 建立一棵二叉樹 前序 中序 層次非遞迴遍歷該二叉樹 判斷該二叉樹是否為二叉排序樹 如果是二叉排序樹,進行結點的插入或刪除 輸出結果 2 解題思路 首先設計乙個結構體,確定需要輸入的資料型別,再設計乙個結構體,用來存放左右孩子的指標。輸入資料建立乙個二叉樹,首先輸入左子樹的資料,以 0 ...