1. 程式人生 > >真題2001 雙親表示法求樹中節點層次和樹高

真題2001 雙親表示法求樹中節點層次和樹高

題目:已知有n個結點的樹以雙親表示法儲存在一維陣列中。請設計一個演算法求樹中每個結點的層次和樹的高度,將求得的每個結點的層次儲存在一維陣列C中,並分析你所設計的演算法的時間複雜度。

int Depth(PTree t){         
	//編寫求雙親表示法表示的樹的深度的演算法
	int maxdepth=0 , i, temp, f;     //設初始深度為0
	for(i=0;i<t.n;i++){             //t.n表示樹t的第n個結點
		temp=0;
		f=i;
		while(f > -1 ){
			temp++;
			f=t.nodes[f].parent;
		}
		if(temp>maxdepth)  maxdepth=temp;
	}
	return maxdepth;
}