以二叉链表表示二叉树,建立一棵二叉树写出程序,c语言
时间: 2024-11-22 09:26:37 浏览: 18
在C语言中,我们可以使用结构体和链表来表示二叉树。首先,定义一个`Node`结构体,包含一个整数值(存储节点值)、指向左右子节点的指针:
```c
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
```
接下来,我们创建一个函数来构建二叉树。这里以中序遍历来构建二叉搜索树为例:
```c
void insertIntoBST(Node** root, int value) {
if (*root == NULL) {
*root = (Node*)malloc(sizeof(Node));
(*root)->data = value;
(*root)->left = NULL;
(*root)->right = NULL;
} else if (value < (*root)->data) {
insertIntoBST(&(*root)->left, value);
} else {
insertIntoBST(&(*root)->right, value);
}
}
```
这个函数接受一个指向`Node`的指针和一个整数值作为输入。如果当前节点为空,就新建一个节点并将其插入。如果新值小于当前值,就往左子树递归;反之,往右子树递归。
最后,你可以像这样调用该函数来构建一颗二叉树:
```c
int main() {
Node* root = NULL;
// 假设有一个整数数组values...
for (int i = 0; i < sizeof(values)/sizeof(values[0]); i++) {
insertIntoBST(&root, values[i]);
}
return 0;
}
```
这将按照给定的顺序(如升序或降序)创建一棵二叉搜索树。
阅读全文