用C语言将二叉树的顺序存储结构转换成二叉链存储结构
时间: 2024-05-25 08:06:26 浏览: 104
用顺序和二叉链表作存储结构实现二叉排序树全代码.doc
5星 · 资源好评率100%
以下是将二叉树的顺序存储结构转换成二叉链存储结构的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_TREE_SIZE 100
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;} BiTNode, *BiTree;
// 将顺序存储结构转换成二叉链存储结构
void CreateBiTree(BiTree *T, char *bt, int i) {
char ch = bt[i];
if (ch == '#') {
*T = NULL;
} else {
*T = (BiTree) malloc(sizeof(BiTNode));
(*T)->data = ch;
CreateBiTree(&(*T)->lchild, bt, 2 * i);
CreateBiTree(&(*T)->rchild, bt, 2 * i + 1);
}
}
int main() {
char bt[MAX_TREE_SIZE];
printf("请输入二叉树的顺序存储结构:\n");
scanf("%s", bt);
BiTree T;
CreateBiTree(&T, bt, 1);
printf("二叉链存储结构已创建!\n");
return 0;
}
```
阅读全文