C语言怎么把二叉树的前序遍历后的结果存到一个变量中
时间: 2024-02-27 10:55:25 浏览: 83
c语言二叉树前中后序遍历
5星 · 资源好评率100%
首先,我们需要定义一个结构体来表示二叉树的节点:
```
typedef struct Node {
int val;
struct Node* left;
struct Node* right;
} Node;
```
其中,`val`表示节点的值,`left`和`right`分别表示节点的左右子节点。
接下来,我们可以使用递归的方式实现前序遍历,并将遍历的结果存储到一个数组中:
```
void preorder(Node* root, int* arr, int* index) {
if (root == NULL) return;
arr[*index] = root->val;
(*index)++;
preorder(root->left, arr, index);
preorder(root->right, arr, index);
}
```
其中,`arr`表示存储遍历结果的数组,`index`表示当前遍历到的节点在数组中的下标。
最后,我们可以在主函数中调用`preorder`函数,并将遍历结果存储到一个变量中:
```
int main() {
Node* root = createTree(); // 创建二叉树
int arr[100];
int index = 0;
preorder(root, arr, &index); // 前序遍历
// 将遍历结果存储到一个变量中
// 可以使用字符串、数组或其他数据结构来存储
// 这里使用字符串来示例
char str[100];
sprintf(str, "%d", arr[0]);
for (int i = 1; i < index; i++) {
strcat(str, ",");
char temp[10];
sprintf(temp, "%d", arr[i]);
strcat(str, temp);
}
printf("%s\n", str);
return 0;
}
```
注意,这里使用`sprintf`和`strcat`函数将整型数组转换成了字符串,并将其存储到了`str`变量中。
阅读全文