示例#1
0
文件: MyTree.cpp 项目: styxschip/Note
//层序遍历
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;
    }
  }
}
示例#2
0
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;
}
示例#3
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;
}