C语言void PreOrder(BiTree T) { if (T == NULL) { return; } i1=T->data; printf("%c ", T->data); PreOrder(T->lchild); PreOrder(T->rchild); }怎么把前序序列的结果存储到一个变量中
时间: 2024-02-27 13:55:33 浏览: 67
可以使用一个数组来存储前序遍历的结果。首先,在主函数中定义一个数组:
```
char preOrder[100];
```
然后,将数组作为参数传入`PreOrder`函数中,并将遍历到的节点的值存储到数组中。修改后的代码如下:
```
void PreOrder(BiTree T, char* preOrder, int* index) {
if (T == NULL) {
return;
}
preOrder[*index] = T->data;
(*index)++;
PreOrder(T->lchild, preOrder, index);
PreOrder(T->rchild, preOrder, index);
}
```
其中,`preOrder`表示存储前序遍历结果的数组,`index`表示当前遍历到的节点在数组中的下标。
最后,在主函数中调用`PreOrder`函数并打印结果:
```
int main() {
BiTree T = createTree(); // 创建二叉树
char preOrder[100];
int index = 0;
PreOrder(T, preOrder, &index); // 前序遍历
preOrder[index] = '\0'; // 在数组末尾添加'\0',表示字符串结束
printf("%s\n", preOrder); // 打印前序遍历结果
return 0;
}
```
注意,这里需要在数组末尾添加`'\0'`,表示字符串结束,才能使用`printf`函数打印结果。
阅读全文