孩子兄弟鍊錶求深度

2021-09-29 00:24:55 字數 551 閱讀 9950

描述:對以孩子-兄弟鍊錶表示的樹編寫計算樹的深度的演算法

1、源**

#include

#include

typedef

struct csnodecsnode;

//層次遍歷構建二叉樹

void

creattree

(csnode*

* t)

else

return;}

intdepth

(csnode *t)

}return max+1;

}int

main()

2、解釋

求深度採用遞迴呼叫,如果樹為空,則返回0,如果左孩子為空,則返回1,

定義乙個最大值變數用於保留當前的最大值,如果後面兄弟結點的dep大於max,則將max置位dep

層層下降,最後返回max+1

3、輸出結果

一般樹的建立(孩子兄弟鍊錶) 遍歷 深度

include include typedef struct csnode csnode csnode t,q int preoder 通過先序遍歷的方式輸出該樹一條從根到葉子的路徑 if stact top in 0 if top 0 break else return high 建立 孩子 兄弟...

已知層次序列及結點的度,求樹的孩子 兄弟鍊錶

我們已知層次序列陣列a,以及各結點對應的度。可以建立乙個臨時鍊錶組,先在組內存放乙個個單個的結點,再將各結點通過父子關係鏈結。例如,我們有結點a bcde 度220 00這樣的序列和度的情況 左圖 要轉換為如下的孩子 兄弟鍊錶 右圖 先構造臨時樹temp 包括資料,左孩子,右兄弟指標 在temp中各...

面試 雙向迴圈鍊錶求深度

今天面中興,題目是求雙向迴圈鍊錶的深度,發現還是不太會,回來敲了一遍。思路是迴圈便利直到尾節點,尾節點的標誌是,其下乙個節點是頭結點。include include typedef enum bool bool typedef struct bilistnode bl node bool inser...