- #include <iostream>
- using namespace std;
- typedef char ElemType;
- /*↓↓↓↓↓↓↓↓↓stuct tree↓↓↓↓↓↓↓↓↓↓*/
- typedef struct Bitnode
- {
- ElemType data;
- struct Bitnode *lchild,*rchild;
- }Bitnode,*BitTree;
- int CreatB_Tree(BitTree &T)
- {
- ElemType ch;
- ch=getchar();
- if(ch==' ')T=NULL;
- else
- {if(!(T=new Bitnode))cout<<"Error!"<<endl;
- T->data=ch;
- CreatB_Tree(T->lchild);
- CreatB_Tree(T->rchild);
- }
- return 1;
- }
- void Pre_Order_Traverse(BitTree T)
- {if(T)
- {cout<<T->data<<" ";
- Pre_Order_Traverse(T->lchild);
- Pre_Order_Traverse(T->rchild);
- }
- }
- void In_Order_Traverse(BitTree T)
- {if(T)
- {
- In_Order_Traverse(T->lchild);
- cout<<T->data<<" ";
- In_Order_Traverse(T->rchild);
- }
- }
- void Po_Order_Traverse(BitTree T)
- {if(T)
- {
- Po_Order_Traverse(T->lchild);
- Po_Order_Traverse(T->rchild);
- cout<<T->data<<" ";
- }
- }
- int Layer_Traver_B_Tree(BitTree T)
- { BitTree Queue[100];
- int front=0;
- int rear=0;
- if(!T)return 0;
- Queue[rear]=T;rear++;
- while(front!=rear)
- {if(Queue[front]!=NULL){T=Queue[front];cout<<T->data<<" ";front++;}//delete queue
- if(T->lchild!=NULL)
- {Queue[rear]=T->lchild;rear++;}//insert queue
- if(T->rchild!=NULL)
- {Queue[rear]=T->rchild;rear++;}//insert queue
- }
- return 1;
- }
- int main()
- { BitTree T;
- CreatB_Tree(T);
- cout<<"preorder traversal :";
- Pre_Order_Traverse(T);
- cout<<endl<<"inorder traversal :";
- In_Order_Traverse(T);
- cout<<endl<<"postorder traversal:";
- Po_Order_Traverse(T);
- cout<<endl<<"layer traversal :";
- Layer_Traver_B_Tree(T);
- int m;
- cin>>m;
- return 0;
- }
上机
最新推荐文章于 2023-06-27 09:12:00 发布