100行C代碼終端打印樹形結構
講究套路之前,先來回答三個問題。
為什么要打印樹形結構
樹形結構是算法里很常見的一種數據結構,從二叉樹到多叉樹,還有很多變種。很多涉及到算法的工作,就需要程序員自己手動實現樹形結構無限層次樹形筆記本,但出于結構本身復雜性,不太容易做對,需要一種調試工具來檢測正確性。一般的調試手段無非就是加打無限層次樹形筆記本印,GDB上斷點,寫測試用例等,但這些局部以及外部的調試信息對于數據結構的整體把握提供的幫助十分有限,經驗不足的程序員甚至可能會迷失在一大片調試信息的汪洋大海中找不著北。理解算法本身是一回事,自己動手是另一回事了,這跟我們理解算法的思維方式有關——對于數據結構而言,我們的感知是形象化的,比方腦海中自動出現一幅圖,動態的插入刪除,每個節點是如何變動的,平衡的時候局部是怎么旋轉的等等,對智力正常的人來說不是什么難事無限層次樹形筆記本。但對機器來說,它要面對的是只是一堆基于狀態的指令而已,將人的形象思維轉化為狀態機,本身是一件艱難的工作,因為我們很難感知并存儲這么多狀態,這就需要工具來輔助,最好是畫出整個形狀結構,以直觀地提醒我們哪里出錯了,所謂“觀其形無限層次樹形筆記本,見其義”。
我們知道Linux有個tree命令用來打印樹狀目錄列表,可以將某個目錄下的所有文件和子目錄一覽無遺,非常直觀,本文可以說就是為了實現這個效果,并給出源碼實現。
如果您覺得 100行C代碼終端打印樹形結構 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.meyanliao.com/article/other/xCdmzddysxjg.html
文章地址:http://www.meyanliao.com/article/other/xCdmzddysxjg.html