二叉树的建立
作者:互联网
【问题描述】
建立如图所示的二叉树。输入先序遍历序列以建立二叉树。输出其后序遍历 结果,(其中空结点使用英文句号代替)。
【样例输入】
ABD...CE..F..
【样例输出】
DBEFCA
#include<iostream> #include<cstring> using namespace std; int cnt=0; // 用于根节点累加器。 char a; // 定义输入的字符变量。 struct node{ char value; int lchild, rchild; } data[101]; int create(int pos){ cin>>a; if(a=='.') return 0; pos=++cnt; data[pos].value=a; // data[pos].lchild=data[pos].rchild=0; data[pos].lchild=create(pos); data[pos].rchild=create(pos); return pos; } // 后序遍历树操作。 void rootNode(int pos){ //如果当前根节点下标不为0,则依次按照左、右、根顺序递归(遍历)树的结点。 if(pos){ rootNode(data[pos].lchild); rootNode(data[pos].rchild); cout<<data[pos].value; } return; } int main(){ int root=create(0); rootNode(root); return 0; }
标签:lchild,遍历,建立,int,pos,二叉树,rchild,data 来源: https://www.cnblogs.com/dks0313/p/16519380.html