#创建树,让树的每个节点都变成度数为2的树
通过先序遍历124###3##能够唯一确定一棵树。
// nonrecursion.cpp// 对树的操作#define _CRT_SECURE_NO_WARNINGS#include#include #include using namespace std;// 二叉树表示法typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;// 递归中序遍历void inOrder(BiTNode *T){ if (T == NULL) { return; } inOrder(T->lchild); printf("%c ", T->data); inOrder(T->rchild);}// #号法创建树BiTNode* BiTNodeCreate(){ BiTNode *tmp = NULL; char ch; scanf("%c", &ch); if (ch == '#') { return NULL; } else { tmp = (BiTNode *)malloc(sizeof(BiTNode)); if (tmp == NULL) { return NULL; } tmp->data = ch; tmp->lchild = BiTNodeCreate(); tmp->rchild = BiTNodeCreate(); return tmp; }}// 释放树,先释放左子树。再释放右子树,再释放根结点void BiTNodeFree(BiTNode *T){ if (!T) { return; } if (T->lchild) { BiTNodeFree(T->lchild); T->lchild = NULL; } if (T->lchild) { BiTNodeFree(T->lchild); T->lchild = NULL; } free(T);}void operatorTree(){ BiTNode *T = NULL; T = BiTNodeCreate(); inOrder(T); printf("\n"); BiTNodeFree(T);}int main(){ operatorTree(); return 0;}