//层序遍历 void MyTree::LayerTraverse(TreeNode* pNode) { LinkQueue<TreeNode*> queue; TreeNode* pCur = pNode; queue.EnQueue(pCur); while(true) { pCur = queue.DeQueue(); printf("%d[%d] ", pCur->m_Data, pCur->m_nDepth); //压入左子树 if(pCur->m_pLeft) { queue.EnQueue(pCur->m_pLeft); } //压入右子树 if(pCur->m_pRight) { queue.EnQueue(pCur->m_pRight); } if(queue.IsEmpty()) { break; } } }
int main() { LinkQueue lq; DataType t; cout << "is empty?" << lq.Empty_Queue() << endl; for (int i = 0; i < 10; i++) { lq.EnQueue(i); } cout << "is empty?" << lq.Empty_Queue() << endl; lq.Print(); lq.DeQueue(t); lq.GetFrontQueue(t); cout << "t" << t << endl; lq.Print(); system("pause"); return 0; }
int main(){ ifstream fin("data.txt"); assert(fin); LinkQueue<int> que; int data; while (!fin.eof()){ assert(fin >> data); que.EnQueue(data); } cout << "The queue in the file is:\n" << que << endl; que.getFront(data); cout << "The front in the queue is: " << data << endl; cout << "Delete the front in turn, the result is:" << endl; int len = que.getSize(); for(int i = 0; i < len; i++){ que.DeQueue(data); cout << "Delete " << data << ", then the queue is:\n"; cout << que << endl; } return 0; }