template<typename T>void BinaryTree<T>::WidthOrder(TNode<T> *Current){ if(Current!=NULL){ Queue<TNode<T>*> q; // 队列 q.EnQue(Current); TNode<T> * p; while(!q.IsEmpty()) { p = q.DeQue(); // 队首元素出队列 cout<<p->info<<'\t'; // 访问p结点 if(p->lchild) q.EnQue(p->lchild); if(p->rchild) q.EnQue(p->rchild); } //后序访问根结点 } }
int main(int argc, const char * argv[]) { // insert code here... int i; Queue<char> que; //缺省为18元素队列,可用17 char str1[]="abcdefghijklmnop";//17个元素,包括串结束符 que.MakeEmpty(); for(i=0;i<17;i++) que.EnQue(str1[i]); if(que.IsFull()) cout<<"队满"; cout<<"共有元素:"<<que.Length()<<endl; for(i=0;i<17;i++) cout<<que.DeQue(); //先进先出 cout<<endl; if(que.IsEmpty()) cout<<"队空"; cout<<"共有元素:"<<que.Length()<<endl; return 0; }