国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

SDUTOJ 2173 數據結構實驗之求二叉樹后序遍歷和層次遍歷

2019-11-10 22:37:13
字體:
來源:轉載
供稿:網友
[cpp] view plain copy #include<iostream>  #include<stdio.h>  #include<queue>  #include<string.h>  #include<stdlib.h>  using namespace std;  char s1[100],s2[100],ans[100];  typedef struct BiTNode  {      char data;      struct BiTNode *lchild,*rchild;  }BiTNode,*BiTree;  void build(BiTree &T,char *s1,char *s2,int n)//利用前序遍歷和中序遍歷恢復二叉樹  {      if(n<=0) T=NULL;      else      {          int p=strchr(s2,s1[0])-s2;          T=new BiTNode;          T->data=s1[0];          build(T->lchild,s1+1,s2,p);//遞歸創建左子樹          build(T->rchild,s1+p+1,s2+p+1,n-p-1);//遞歸創建右子樹      }  }  void build1(int n,char *s1,char *s2,char *s)//根據前序遍歷和中序遍歷求后序遍歷  {       if(n<=0) return ;       else       {           int p=strchr(s2,s1[0])-s2;           build1(p,s1+1,s2,s);           build1(n-p-1,s1+p+1,s2+p+1,s+p);           s[n-1]=s1[0];       }  }  void levelOrder(BiTree T)//bfs算法完成層次遍歷,使用隊列存儲數據。  {      BiTree p=T;      queue<BiTree>queue;      queue.push(p);      while(!queue.empty())      {          p=queue.front();          cout<<p->data;          queue.pop();          if(p->lchild!=NULL)          {              queue.push(p->lchild);          }          if(p->rchild!=NULL)          {              queue.push(p->rchild);          }      }  }  int main()  {      BiTree T;      int n,len;      cin>>n;      while(n--)      {          cin>>s1>>s2;          len=strlen(s1);          build(T,s1,s2,len);          build1(len,s1,s2,ans);          ans[len]='/0';          cout<<ans<<endl;          levelOrder(T);          cout<<endl;      }      return 0;  }  轉載地址http://blog.csdn.net/r_misaya/article/details/40396607
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠来县| 甘德县| 金乡县| 东台市| 东阳市| 宁波市| 九台市| 渭南市| 江达县| 山西省| 玉树县| 辽中县| 措美县| 孟连| 巧家县| 尼勒克县| 永宁县| 始兴县| 云龙县| 西平县| 合水县| 柏乡县| 故城县| 凤翔县| 峨边| 班戈县| 濮阳县| 合阳县| 石河子市| 黔东| 潞城市| 诸暨市| 平潭县| 高唐县| 鄄城县| 商南县| 克东县| 新建县| 鄂尔多斯市| 衡南县| 桃源县|