zoukankan      html  css  js  c++  java
  • [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=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=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;
    }
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 No sacrifice , no victory.
  • 相关阅读:
    产品设计理应遵循哪些原则?
    产品经理必读的九步法
    exec
    Class convert
    Connecting method
    ASP.NET读写操作
    Encrypt Decrypt
    EventHandler, EventArgs
    Convert using code
    Dictionary List
  • 原文地址:https://www.cnblogs.com/pityhero233/p/7305943.html
Copyright © 2011-2022 走看看