oj 先序生成树以及print()queue

来源:互联网 发布:社会学属于法学吗 知乎 编辑:程序博客网 时间:2024/05/20 17:26
#include <iostream>#include <queue>#include <string>#include <stdio.h>using namespace std;static int count=0;class Node{public:char data;Node * Nodeleft;Node * Noderight;Node(char data){this->data=data;Nodeleft=NULL;Noderight=NULL;}void SetLeft(Node *node){Nodeleft=node;}void SetRight(Node *node){Noderight=node;}}; void CreateTree(Node* &T){char ch;if((ch=getchar())=='\0') T=NULL;else if(ch>='a'&&ch<='z'){T=new Node(ch);CreateTree(T->Nodeleft);CreateTree(T->Noderight);}else{T=new Node(ch);}}int main(){int n=0;cin>>n;for(int i=0;i<n;i++){cin.ignore();Node* root;CreateTree(root);queue<Node*> queue;queue.push(root);while(!queue.empty()){Node* p=queue.front();queue.pop();cout<<p->data;if(p->Nodeleft!=NULL) queue.push(p->Nodeleft);if(p->Noderight!=NULL) queue.push(p->Noderight);}cout<<endl;}return 0;}

原创粉丝点击