标签:
// Filename : binary_tree.c // Author : LupingChen // Data : 2015.06.01 // Content : insert_data\travel_data #include <stdio.h> #include <stdlib.h> //定义节点数据类型 typedef struct Node { int data;//数据 struct Node* left; struct Node* right; } Node; //定义二叉树数据类型 typedef struct { Node* root;//记录根节点地址 int cnt;//统计节点数 } Tree; //插入节点 void insert_data(Tree* pt, int data) //插入节点的递归函数 void insert(Tree** pRoot, Node* pn); //采用中序的方法遍历 void travel_data(Tree* pt); //遍历递归函数 void travel(Tree* pRoot); int mani() { //创建二叉树 Tree tree; tree.root = NULL; tree.cnt = 0; return 0; } //采用中序的方法遍历 void travel_data(Tree* pt) { travel(pt->root); printf("\n"); } //遍历递归函数 void travel(Tree* pRoot) { //树不为空才遍历 if (pRoot != NULL) { //遍历左树 travel(pRoot->left); //遍历根节点 printf("%d ", pRoot->data); //遍历右树 travel(pRoot->right); } } //插入节点的递归函数 void insert(Tree** pRoot, Node* pn) { //1.空二叉树的节点插入 if (NULL == *pRoot) { *pRoot = pn; } //2.非空插入,比较大小 //2.1根节点大于新节点插入左边 if (*pRoot->data > pn->data) { insert(&(*pRoot)->left, pn); } //2.2根节点大于新节点插入右边 else { insert(&(*pRoot)->right, pn); } } //插入节点 void insert_data(Tree* pt, int data) { //1.创建节点 Node* pn = (Node* )malloc(sizeof(Node)); pn->data = data; pn->left = NULL; pn->right = NULL; //2.插入节点 insert(&pt->root, pn); //节点数加一 pt->cnt++;
标签:
原文地址:http://blog.csdn.net/c764785456/article/details/46292573