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

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

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

2019-11-10 22:21:39
字體:
來源:轉載
供稿:網友
[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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁化县| 乡宁县| 桦甸市| 民勤县| 漳平市| 平原县| 富源县| 金寨县| 车险| 遵义市| 淄博市| 左贡县| 康平县| 牡丹江市| 洛阳市| 余江县| 靖宇县| 甘肃省| 寿光市| 津南区| 都匀市| 青阳县| 灵璧县| 南京市| 辛集市| 石台县| 丹江口市| 周宁县| 怀集县| 崇义县| 湛江市| 南川市| 莱阳市| 宿州市| 花莲县| 龙陵县| 阜城县| 五大连池市| 郸城县| 恩平市| 隆回县|