根据二元树后序序列建立二叉树
来源:互联网 发布:金融大数据发展历程 编辑:程序博客网 时间:2024/05/29 19:56
typedef struct BiTNode{char value;struct BiTNode *lchild;struct BiTNode *rchild;}BiTNode,*BiTree;char* lookL(char str[],int& len){int i=0;for(;i<len;i++){if(str[i]>str[len]){break;}}std::string str1=str;str1=str1.substr(0,i);//cout<<str1.c_str()<<endl;char* p=(char*)malloc(i+1);strcpy(p,str1.c_str());len=str1.length()-1;return p;}char* LookR(char str[],int &len){int i=0;for(;i<len;i++){if(str[i]>str[len]){break;}}std::string str1=str;str1=str1.substr(i,len-i);char* p=(char*)malloc(len-i+1);strcpy(p,str1.c_str());len=str1.length()-1;return p;}void createBiTree(BiTree &t,char str[],int len){if(len<0){t=NULL;return;}t=(BiTree)malloc(sizeof(BiTNode));t->value=str[len];t->lchild=NULL;t->rchild=NULL;char* p0=(char*)malloc(sizeof(char)*20);memset(p0,0,20);p0=lookL(str,len);createBiTree(t->lchild,p0,len);char* p1=(char*)malloc(sizeof(char)*20);memset(p1,0,20);std::string test;test=str;len=test.length()-1;p1=LookR(str,len);createBiTree(t->rchild,p1,len);}void traverse(BiTree T){if(T){traverse(T->lchild);cout<<T->value<<" ";traverse(T->rchild);}}int main(){char str1[]="132576984";char* str=(char*)malloc(sizeof(char)*8);strcpy(str,str1);BiTree T=NULL;createBiTree(T,str,8);traverse(T);return 0;}
以下是测试:
- 根据二元树后序序列建立二叉树
- 根据序列还原二叉树
- 根据二叉树序列构造二叉树
- 根据前序和中序序列,建立二叉树(java实现)
- 根据前序/后序/层序+中序遍历序列建立二叉树
- 第4章第1节练习题13 根据先序序列和中序序列建立二叉树
- 根据前序中序遍历建立二叉树
- 如何根据两个遍历建立二叉树
- java根据层次遍历建立二叉树
- 根据父子关系建立二叉树
- 根据前序中序序列重建二叉树
- 根据遍历序列确定二叉树
- 根据前序中序序列构建二叉树
- 根据遍历序列确定二叉树
- 根据先根序列创建二叉树
- 根据二叉树的先序遍历建立二叉树
- 根据二叉树前序/中序结果,建立二叉树
- 先序序列建立二叉树
- 典型的 C++ 程序员成长经历
- 美国哈佛大学图书馆凌晨4点座无虚席
- 接口问题
- 关于C语言中一,二级指针函数中的使用和c语言中和函数发生调用时,实参和形参都会占用内存吗?
- 异常处理
- 根据二元树后序序列建立二叉树
- android adb网络连接方法
- 多线程
- menu 的用法.
- 多线程,卖票系统
- 剖析@Resource注解的实现原理
- JDBC-ODBC方式连接数据库工作原理解释
- IBM计划于2012年12月14日停止使用Lotus品牌的协同办公系统
- HLR和VLR