C语言在二叉树中查找指定字符代码
时间: 2024-05-01 20:21:46 浏览: 72
以下是使用 C 语言在二叉树中查找指定字符的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
struct node {
char data;
struct node* left;
struct node* right;
};
struct node* createNode(char data) {
struct node* newNode = (struct node*)malloc(sizeof(struct node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
struct node* insert(struct node* root, char data) {
if (root == NULL) {
return createNode(data);
} else {
if (data < root->data) {
root->left = insert(root->left, data);
} else {
root->right = insert(root->right, data);
}
return root;
}
}
int search(struct node* root, char data) {
if (root == NULL) {
return 0;
} else if (root->data == data) {
return 1;
} else if (data < root->data) {
return search(root->left, data);
} else {
return search(root->right, data);
}
}
int main() {
struct node* root = NULL;
root = insert(root, 'B');
root = insert(root, 'A');
root = insert(root, 'C');
root = insert(root, 'D');
root = insert(root, 'E');
if (search(root, 'C')) {
printf("Found\n");
} else {
printf("Not found\n");
}
return 0;
}
```
以上代码中,首先定义了一个表示二叉树节点的结构体 `node`,然后定义了创建节点和插入节点的函数。在 `search` 函数中,如果当前节点为空,说明已经遍历完整个树,仍未找到指定字符,返回 0;如果当前节点的值等于指定字符,说明已经找到了,返回 1;否则,如果指定字符小于当前节点的值,继续在左子树中查找;如果指定字符大于当前节点的值,继续在右子树中查找。最后,在 `main` 函数中,创建二叉树并查找指定字符。如果找到了,输出 "Found",否则输出 "Not found"。
阅读全文