二叉樹 層次遍歷

二叉樹按層次遍歷,要求在不同的層次之間輸出空行。

template<class Type> void Tree<Type>::level() const 
{
	queue<Node<Type>*> q;
	Node<Type> *p = root;
	if (p != 0) {
		q.push(p);
		q.push(0);
	}
	while (!q.empty()) {
		p = q.front();
		q.pop();
		if (p != 0) {
			cout <<p->data << " ";
			if (p->left != 0) 
				q.push(p->left);
			if (p->right != 0)
				q.push(p->right);
		} else {
			if (!q.empty())
				q.push(0);
			cout << endl;
		}
	}
}


發佈了40 篇原創文章 · 獲贊 6 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章