建立二叉树的二叉链表存储结构
时间: 2023-09-11 22:11:35 浏览: 144
构建二叉树的二叉链表存储结构
二叉链表存储结构是指在二叉树的每个结点中,除了存储该结点的数据元素之外,还增加了两个指针,分别指向该结点的左子树和右子树。以下是建立二叉树的二叉链表存储结构的示例代码:
```
typedef struct BiTNode {
int data; // 数据元素
struct BiTNode *lchild, *rchild; // 左右子树指针
} BiTNode, *BiTree;
```
其中,`BiTNode` 是二叉树的结点类型,包含数据元素 `data` 和左右子树指针 `lchild` 和 `rchild`;`BiTree` 是指向二叉树根节点的指针类型。
二叉树的建立可以通过递归算法实现,具体代码如下:
```
// 先序遍历建立二叉树
void CreateBiTree(BiTree *T) {
int data;
scanf("%d", &data);
if (data == 0) {
*T = NULL;
} else {
*T = (BiTree)malloc(sizeof(BiTNode));
if (!*T) {
exit(1); // 内存分配失败
}
(*T)->data = data;
CreateBiTree(&((*T)->lchild));
CreateBiTree(&((*T)->rchild));
}
}
```
该算法通过先序遍历的方式,依次读入二叉树的各个结点,如果读入的数据为 0,则表示该结点为空;否则,分配内存空间并存储数据元素,然后递归地建立它的左右子树。
阅读全文