面试算法—重建二叉树
来源:互联网 发布:上古世纪没人玩 知乎 编辑:程序博客网 时间:2024/05/22 19:39
前段时间看了《编程之美》,这几天在看《剑指offer》,感觉写的不是很美。他们的代码感觉思路不是很容易读出来,我就顺手自己写了个。
我的思路大概就是按照先序遍历建树的,以题目中先序的的数组遍历添加到重建的二叉树中,以中序遍历和先序遍历的数组判断子节点是否为空。
Talk is cheap,show you the code
#include <stdio.h>#include <stdlib.h>#define OVERFLOW -2#define OK 1#define QElemType BiTNode#define TRUE 1#define FALSE 0#define ERROR 0typedef int Status;typedef char ElemType;typedef struct BiTNode // 结点结构{ ElemType data; struct BiTNode *lchild, *rchild; // 左右孩子指针} BiTNode, *BiTree;char a[]={'a','b','d','c','e','f'};char b[]={'d','b','a','e','c','f'};int a_len=sizeof(a);int index(char c,int start,int end){for(int i = start;i<end;i++){if(c==b[i]){return i;}}return -1;}Status Rebuild(BiTree &T,int &i,int start,int end){if(i==a_len+1)return 0; int position =index(a[i],start,end); // printf("%d:%d %d %d\n",i,start,end,position); if(position!=-1) { if ((T =(BiTNode *)malloc(sizeof(BiTNode)))==NULL) exit(OVERFLOW);T->data = a[i]; // 生成根结点 i++; Rebuild(T->lchild,i,start,position); Rebuild(T->rchild,i,position,end); } else { T=NULL; } return 0;}Status PreOrderTraverse(BiTree T, Status(*visit)(ElemType&)){ //T为树根的指针,先序遍历 if (T) { visit(T->data); // 访问结点 PreOrderTraverse(T->lchild, visit); PreOrderTraverse(T->rchild, visit); }}Status print(ElemType &c){ printf("%c ",c);}int main(int argc, char const *argv[]){BiTree t;int i=0;int start = 0;int end = sizeof(b);Rebuild(t,i,start,end);PreOrderTraverse(t,print);return 0;}
0 0
- 面试算法—重建二叉树
- 面试算法(五)重建二叉树
- 算法-重建二叉树
- 算法-重建二叉树
- 【算法题】重建二叉树
- 算法题目---重建二叉树
- 算法:二叉树的重建
- 算法题/重建二叉树
- 面试经典(18)--重建二叉树
- 每天一道算法题——重建二叉树
- 【面试算法系列】已知二叉树的前序和中序遍历重建二叉树 - C语言实现
- 【数据结构与算法】重建二叉树
- 算法练习四:重建二叉树
- [算法学习]输入遍历重建二叉树
- 算法题17 重建二叉树
- 算法题目-二叉树的重建
- 重建二叉树 -- 漫漫算法路 刷题篇
- [剑指offer]算法4 重建二叉树
- 优美的代码就像一首诗
- C++类对象的复制-拷贝构造函数
- Oracle备忘录(六)--集合运算和子查询
- 阶梯微金:常见的投资产品比较
- Tomcat
- 面试算法—重建二叉树
- Oracle数据库管理--用户过期
- mybatis sql日志打印设置
- Telnet,SSH1,SSH2,Telnet/SSL,Rlogin,Serial,TAPI,RAW
- java--css+js做的树形菜单(完整版)
- String/StringBuffer/StringBuilder
- unity我找到一种非常棒的暂停游戏的方法!!
- Activity,Window,View的关系
- mmap预分内存实验