c语言编写程序,彑立如图所示彘带头结点彘二叉链存储结构彘二叉树,首先打印彗二叉树,然后分别输彏按照前序遍历、中序遍历和后序遍历方法访问各结点彘信息,最后,查找字彔‘E’是否在彗二叉树中。
时间: 2024-12-11 22:27:41 浏览: 40
在C语言中,我们可以创建一个二叉链表结构来表示二叉树,并通过函数实现节点的插入、删除以及遍历操作。这里是一个简单的示例,我们先定义一个二叉链表节点结构:
```c
typedef struct TreeNode {
char data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 创建新节点
TreeNode* createNode(char value) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->data = value;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 插入节点
TreeNode* insertNode(TreeNode* root, char value) {
if (root == NULL) {
return createNode(value);
}
if (value < root->data) {
root->left = insertNode(root->left, value);
} else if (value > root->data) {
root->right = insertNode(root->right, value);
}
return root;
}
// 打印二叉树
void printTree(TreeNode* root) {
if (root != NULL) {
printf("%c ", root->data);
printTree(root->left);
printTree(root->right);
}
}
// 遍历方式(这里仅给出前序遍历的实现)
void preOrderTraversal(TreeNode* root) {
if (root != NULL) {
printf("%c ", root->data);
preOrderTraversal(root->left);
preOrderTraversal(root->right);
}
}
// 中序遍历
void inOrderTraversal(TreeNode* root) {
if (root != NULL) {
inOrderTraversal(root->left);
printf("%c ", root->data);
inOrderTraversal(root->right);
}
}
// 后序遍历
void postOrderTraversal(TreeNode* root) {
if (root != NULL) {
postOrderTraversal(root->left);
postOrderTraversal(root->right);
printf("%c ", root->data);
}
}
// 查找字符
int searchCharacter(TreeNode* root, char target) {
if (root == NULL || root->data == target) {
return (root != NULL);
}
return (target < root->data ? searchCharacter(root->left, target) : searchCharacter(root->right, target));
}
```
你可以按照上述步骤定义并操作二叉链表,首先创建根节点,然后插入元素,接着按需调用`printTree()`、`preOrderTraversal()`, `inOrderTraversal()` 或 `postOrderTraversal()` 函数来打印和遍历二叉树。最后,使用`searchCharacter()`函数来查找字符 'E' 是否在二叉树中。
阅读全文
相关推荐



















