C 语言代码示例,展示了如何实现一个简单的二叉搜索树(Binary Search Tree):
#include
#include
// 二叉搜索树节点结构体
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
// 创建新节点
Node* createNode(int data) {
Node* newNode = malloc(sizeof(Node));
if (newNode == NULL) {
perror("Memory allocation failed");
exit(EXIT_FAILURE);
}
newNode->data = data;
newNode->left = newNode->right = NULL;
return newNode;
}
// 插入节点
Node* insertNode(Node* root, int data) {
if (root == NULL) {
return createNode(data);
}
if (data data) {
root->left = insertNode(root->left, data);
} else if (data > root->data)服务器托管网 {
root->right = insertNode(root->right, data);
}
return root;
}
// 中序遍历
void inOrderTraversal(Node* root) {
if (root != NULL) {
服务器托管网 inOrderTraversal(root->left);
printf("%d ", root->data);
inOrderTraversal(root->right);
}
}
int main() {
Node* root = NULL;
// 插入节点
root = insertNode(root, 5);
root = insertNode(root, 3);
root = insertNode(root, 8);
root = insertNode(root, 1);
root = insertNode(root, 4);
root = insertNode(root, 7);
root = insertNode(root, 9);
// 中序遍历并打印结果
printf("中序遍历结果:");
inOrderTraversal(root);
printf("n");
return 0;
}
上述代码中,我们定义了一个二叉搜索树节点结构体 Node
,每个节点包含一个整型数据 data
,以及左子树和右子树的指针。我们实现了以下几个函数:
-
createNode
:用于创建一个新的节点,并初始化数据和指针。 -
insertNode
:用于向二叉搜索树中插入新节点。若插入的数据小于当前节点的数据,则将其插入到左子树;若大于,则插入到右子树。 -
inOrderTraversal
:用于进行中序遍历,按照节点的顺序打印数据。
在 main
函数中,我们创建了一个空的二叉搜索树 root
,并插入一些节点。最后,我们进行中序遍历,并打印结果。
请注意,这只是一个相对复杂的示例代码,演示了如何实现一个简单的二叉搜索树。在实际编写代码时,根据具体需求考虑不同类型的树结构以及相关操作,并谨慎处理内存分配和释放,以避免内存泄漏和其他问题。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: ChatGPT在工业领域的研究与应用探索-AI助手实验应用
为什么我的工作效率和质量要比其他人要高,因为我的电脑里有代码库、产品库、方案库、自己工作经验资料库等,根据一个应用场景或需求能够很快关联到想要的资料,并且整合成新的方案。我的核心竞争力是什么?各种资料库、匹配资料的逻辑和快速找资料的能力。 …