关于C语言二叉树!
发布网友
发布时间:2022-04-24 05:54
我来回答
共1个回答
热心网友
时间:2023-10-03 15:02
对于你的这种情况我觉得比较适合用数组来实现。对于长度为t的输入,申请类型为Node、长度为t的数组nodeArray[t],然后进行两次遍历。
第一次,nodeArray[i].data对应输入的第i个字符,nodeArray[i].lchild和rchild都为空;(如果输入#则nodeArray[i]=null)
第二次,在[0, n-1]的范围内,令nodeArray[i].lchild = &(nodeArray[i * 2]),nodeArray[i].rchild = &(nodeArray[i * 2 + 1])。
完成后,nodeArray[0]即为所求二叉树。
应该有办法一次遍历就构造好这棵树,懒得想了。