使用C语言解决:设计一个算法将二叉树的顺序存储结构转换成二叉链存储结构。 顺序存储结构:ABC#D#E########
时间: 2024-06-13 16:09:18 浏览: 18
以下是将二叉树的顺序存储结构转换成二叉链存储结构的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
char data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode, *TreeNodePtr;
// 递归创建二叉树
TreeNodePtr CreateBinaryTree(char *a, int *pi) {
if (a[*pi] == '#') {
(*pi)++;
return NULL;
}
TreeNodePtr node = (TreeNodePtr)malloc(sizeof(TreeNode));
node->data = a[*pi];
(*pi)++;
node->left = CreateBinaryTree(a, pi);
node->right = CreateBinaryTree(a, pi);
return node;
}
// 将二叉树的顺序存储结构转换成二叉链存储结构
TreeNodePtr ConvertToBinaryTree(char *a) {
int i = 0;
return CreateBinaryTree(a, &i);
}
int main() {
char a[] = "ABC#D#E########";
TreeNodePtr root = ConvertToBinaryTree(a);
return 0;
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)