读入用户输入的一串字符串,将字符串按照先序遍历建立一个二叉树。 其中“#”表示的是空格,代表空树。再对建立好的二叉树进行中序遍历,输出遍历结果。
#include<iostream> #include<string> #include<stdio.h> #include<stdlib.h> using namespace std; typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; }BitNode; BitNode* creatTree(char* str , int *idx) { if(str[*idx] != '#') { BiTNode* root = (BiTNode*)malloc(sizeof(BitNode)); root->data = str[*idx]; ++(*idx); root->lchild = creatTree(str , idx); ++(*idx); root->rchild = creatTree(str , idx); return root; } else{ return NULL; } } void MidPrint(BiTNode *root) { if(root) { MidPrint(root->lchild); cout<<root->data<<" "; MidPrint(root->rchild); } } int main() { char str[101] = {0}; scanf("%s", str); int idx = 0; BiTNode* root = creatTree(str , &idx); MidPrint(root); cout<<endl; return 0; }
标签:遍历,应用,idx,BiTNode,二叉树,str,root From: https://www.cnblogs.com/fan-wang/p/16823527.html