首页 > 代码库 > [NOIp]二叉树的指针实现

[NOIp]二叉树的指针实现

今天学到了二叉树,一开始被那个malloc弄的很迷,后来发现root=(BiTreeNode*)malloc(sizeof(BiTreeNode))的那个星号是在后面的,吐血。。

代码里面有个小技巧,就是typedef struct XXX{...}XXX,这样就使用XXX代替了struct XXX,可以少打一些字了233.

#include<bits/stdc++.h>using namespace std;typedef struct BiTreeNode {    int data;    BiTreeNode* left;    BiTreeNode* right;    void operator =(BiTreeNode* b) {        data=b->data;        left=b->left;        right=b->right;    };} BiTreeNode;BiTreeNode *root;void Create(BiTreeNode* root,int data) { //add a node to the tree    BiTreeNode* tot;    BiTreeNode* Father;    BiTreeNode* current;    tot=(BiTreeNode*)malloc(sizeof(BiTreeNode));//the new point    tot->data=http://www.mamicode.com/data;    tot->left=NULL;    tot->right=NULL;    Father=current=root;    while (current!=NULL) { //find the leaf        if (current->data<data) {            Father=current;            current=current->right;        }        else {            Father=current;            current=current->left;        }    }    current=Father;    if (current->data<data) {        current->right=tot;    }    else {        current->left=tot;    }}int main(){    root=(BiTreeNode*)malloc(sizeof(BiTreeNode));    root->data=http://www.mamicode.com/10;    root->left=NULL;    root->right=NULL;    Create(root,25);    Create(root,5);    Create(root,30);    Create(root,12408);    Create(root,233);    cout<<233;    return 0;}

 

[NOIp]二叉树的指针实现