二叉树

来源:互联网 发布:linux 查看snmp配置 编辑:程序博客网 时间:2024/06/09 19:19

二叉树示意图:



示例代码:

#include  <stdlib.h>#include <stdio.h>typedef struct binary_tree{int data;struct binary_tree *left;struct binary_tree *right;}node;void insert(node **tree, int val) //数据插入{node *temp = NULL;if(!(*tree)){temp = (node *)malloc(sizeof(node));temp->left = temp->right = NULL;temp->data = val;*tree = temp;return;}if(val < (*tree)->data){insert(&(*tree)->left, val);}else if(val > (*tree)->data){insert(&(*tree)->right, val);}}void deltree(node *tree) // 删除树{if(tree){deltree(tree->left);deltree(tree->right);free(tree);}}void print_preorder(node *tree) // 前序{if(tree){printf("%d\n", tree->data);print_preorder(tree->left);print_preorder(tree->right);}}void print_inorder(node *tree) // 中序{if(tree){print_inorder(tree->left);printf("%d\n", tree->data);print_inorder(tree->right);}}void print_postorder(node *tree) // 后序{if(tree){print_postorder(tree->left);print_postorder(tree->right);printf("%d\n", tree->data);}}int main(int argc, char *argv[]){node *root;node *tmp;root = NULL;insert(&root, 9);insert(&root, 4);insert(&root, 15);insert(&root, 6);insert(&root, 12);insert(&root, 17);insert(&root, 2);printf("Pre Order Display\n");print_preorder(root);printf("In Order Display");print_inorder(root);printf("Post Order Display");print_postorder(root);deltree(root);return 0;}

结果:

Pre Order Display9426151217In Order Display2469121517Post Order Display2641217159



0 0
原创粉丝点击