最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一種二叉樹(shù)可視化方案

2022-09-01 08:56 作者:阿-岳同學(xué)  | 我要投稿

摘要

在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)尤其是二叉樹(shù)部分、以及做二叉樹(shù)有關(guān)的算法題的時(shí)候,程序出了問(wèn)題不容易發(fā)現(xiàn)。因?yàn)槎鏄?shù)打印出來(lái)的格式不夠直觀。這篇文章提供一種將二叉樹(shù)通過(guò)轉(zhuǎn)化為html來(lái)直觀可視化的方法。

html生成結(jié)果


主要思路

  1. 通過(guò)打印二叉樹(shù)的帶有空格縮進(jìn)的層次格式的先序序列

  2. 將打印在控制臺(tái)上的文本復(fù)制到txt中

  3. 運(yùn)行python腳本,該腳本能夠讀取文本文件并自動(dòng)生成html代碼并生成網(wǎng)頁(yè)文件

  4. 用瀏覽器打開(kāi)生成的html文件即可看到

詳細(xì)過(guò)程

(一)打印先序序列

以C語(yǔ)言為例,打印一個(gè)二叉樹(shù)可以用以下方法實(shí)現(xiàn)。

調(diào)用printAVL得到的效果是這樣的:

小括號(hào)表示這個(gè)節(jié)點(diǎn)所構(gòu)成的子樹(shù)的高度,這個(gè)可以省略不打印,這個(gè)是為了做平衡二叉樹(shù)方便測(cè)試用的。

^表示的是NULL。小括號(hào)前面的節(jié)點(diǎn)表示二叉樹(shù)節(jié)點(diǎn)的值。空格表示層級(jí)關(guān)系。如同文件夾展開(kāi)樹(shù)一樣。

就如同這樣一個(gè)二叉樹(shù)一樣。學(xué)習(xí)資料是左子樹(shù),軟件是右子樹(shù)。先后區(qū)分了左右。

(二)復(fù)制到txt中并運(yùn)行python腳本

這段python3代碼不借助任何第三方庫(kù)即可運(yùn)行。

若要成功運(yùn)行,需要在同文件夾下新建input.txt并寫(xiě)入內(nèi)容。

然而這個(gè)html代碼需要引入css文件。

需要在同文件夾下新建 index.css文件。下面給出生成css文件的less文件。讀者可以自行搜索如何將LESS文件編譯為css文件。vscode中已有相關(guān)插件。


(三)通過(guò)瀏覽器查看生成效果

小數(shù)據(jù)量
大數(shù)據(jù)量

缺點(diǎn)

  1. 數(shù)字?jǐn)?shù)值大的話(huà)葉子節(jié)點(diǎn)容易密集擠在一起看不清。

  2. css做出來(lái)的格式可能還不夠好看。

  3. 生成的時(shí)間復(fù)雜度是ON2量級(jí),可能還有更優(yōu)的解法。不過(guò)經(jīng)測(cè)試發(fā)現(xiàn)都是一瞬間的事情。節(jié)點(diǎn)數(shù)量再多了也看不清了。



一種二叉樹(shù)可視化方案的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
巍山| 涟源市| 曲周县| 离岛区| 阿拉善右旗| 东阿县| 嘉祥县| 东莞市| 泸定县| 盈江县| 邵东县| 抚州市| 襄城县| 新巴尔虎右旗| 西城区| 精河县| 永年县| 珠海市| 连城县| 陈巴尔虎旗| 南皮县| 宜君县| 常德市| 五大连池市| 山阴县| 定边县| 全南县| 岢岚县| 从江县| 上饶县| 苗栗县| 巫溪县| 葫芦岛市| 玛纳斯县| 南澳县| 富民县| 苏尼特右旗| 平顶山市| 乌兰浩特市| 余干县| 安塞县|