写一段c语言,输入一个 字母输出以该字母为根节点的26个字母的平衡二叉树要求二叉树左面ACSII小于根节点右面大于根节点
时间: 2024-05-19 15:13:17 浏览: 83
C语言递归方式统计二叉树叶子节点个数.zip
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
char value;
struct node *left;
struct node *right;
} Node;
Node* createNode(char value) {
Node* newNode = (Node*) malloc(sizeof(Node));
newNode->value = value;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
Node* insert(Node* root, char value) {
if (root == NULL) {
return createNode(value);
}
if (value < root->value) {
root->left = insert(root->left, value);
} else if (value > root->value) {
root->right = insert(root->right, value);
}
return root;
}
void printTree(Node* root) {
if (root == NULL) {
return;
}
printTree(root->left);
printf("%c ", root->value);
printTree(root->right);
}
int main() {
char c;
printf("请输入一个字母:");
scanf("%c", &c);
Node* root = createNode(c);
int i;
for (i = 97; i <= 122; i++) {
if (i != c) {
root = insert(root, (char) i);
}
}
printf("平衡二叉树的中序遍历结果为:");
printTree(root);
printf("\n");
return 0;
}
阅读全文