标签:order string ios nod clu length class pac struct
#include<iostream> #include<memory.h> #include<cstring> #include<queue> using namespace std; char* res[26]; struct Node { Node* left; Node* right; char num; Node() { }; Node(char c, Node* l = NULL, Node* r = NULL) { num=c; left=l; right=r; } }; Node* rebuild(char* pr,char* in,int len) { int i; Node* temp=new Node(*pr); if(len<=0) return NULL; //cout<<*pr; for(i=0;i<len;i++) { if(*pr==in[i]) break; } temp->left=rebuild(pr+1,in,i); temp->right=rebuild(pr+i+1,in+i+1,len-i-1); return temp; } void PreOrder(Node* root) { if(root) { cout<<root->num; PreOrder(root->left); PreOrder(root->right); } } void InOrder(Node* root) { if(root) { InOrder(root->left); cout<<root->num; InOrder(root->right); } } void PostOrder(Node* root) { if(root) { PostOrder(root->left); PostOrder(root->right); cout<<root->num; } } void LevelOrder(Node* root) { queue<Node*> q; if(root!=NULL) q.push(root); Node* temp; while(!q.empty()) { temp=q.front(); cout<<temp->num; q.pop(); if(temp->left!=NULL) q.push(temp->left); if(temp->right!=NULL) q.push(temp->right); } } int main() { char pr[26]; char in[26]; cin>>pr; cin>>in; int len=strlen(pr); //cout<<len; //int len=cal(pr); //len=a.length(); Node* root=rebuild(pr,in,len); //PreOrder(root); //cout<<endl; //InOrder(root); //cout<<endl; //PostOrder(root); //cout<<endl; LevelOrder(root); cout<<endl; return 0; }
标签:order string ios nod clu length class pac struct
原文地址:http://www.cnblogs.com/xlqtlhx/p/7572094.html