老师能上传一下你的源代码吗?

来源:3-2 二叉树数组实现编码实战(二)

慕移动1272676

2019-08-15 10:15

老师能上传一下你的源代码吗?

写回答 关注

2回答

  • 慕村33948570
    2019-09-05 16:51:43

    #include <iostream>

    #include "Tree.h"


    using namespace std;

    Tree::Tree(int size)

    {

        m_iSize=size;

        m_pTree=new int[size];

        for(int i=0; i<size; i++)

        {

            m_pTree[i]=0;

        }

    }


    Tree::~Tree()

    {

        delete []m_pTree;

        m_pTree=NULL;

    }


    int *Tree::SearchNode(int nodeIndex)

    {

        if(nodeIndex<0||nodeIndex>=m_iSize)

        {

            return NULL;

        }

        if(m_pTree[nodeIndex]==0)

        {

            return NULL;

        }

        return &m_pTree[nodeIndex];

    }


    bool Tree::AddNode(int nodeIndex,int direction,int *pNode)

    {

        if(nodeIndex<0||nodeIndex>=m_iSize)

        {

            return false;

        }

        if(m_pTree[nodeIndex]==0)

        {

            return false;

        }

        if(direction==0)

        {

            if(nodeIndex*2+1<0||nodeIndex*2+1>=m_iSize)

            {

                return false;

            }

            if(m_pTree[nodeIndex*2+1]!=0)

            {

                return false;

            }

            m_pTree[nodeIndex*2+1]=*pNode;

        }

        if(direction==1)

        {

            if(nodeIndex*2+2<0||nodeIndex*2+2>=m_iSize)

            {

                return false;

            }

            if(m_pTree[nodeIndex*2+2]!=0)

            {

                return false;

            }

            m_pTree[nodeIndex*2+2]=*pNode;

        }

        return true;

    }


    bool Tree::DeleteNode(int nodeIndex,int *pNode)

    {

        if(nodeIndex<0||nodeIndex>=m_iSize)

        {

            return false;

        }

        if(m_pTree[nodeIndex]==0)

        {

            return false;

        }

        *pNode=m_pTree[nodeIndex];

        m_pTree[nodeIndex]=0;

        return true;

    }


    void Tree::TreeTraverse()

    {

        for(int i=0;i<m_iSize;i++)

        {

            cout<<m_pTree[i]<<" ";

        }

    }






  • 慕村33948570
    2019-09-05 16:51:27

    #ifndef TREE_H

    #define TREE_H

    #ifdef __cplusplus


    class Tree

    {

    public:

        Tree(int size);

        ~Tree();

        int *SearchNode(int nodeIndex);

        bool AddNode(int nodeIndex,int direction,int *pNode);

        bool DeleteNode(int nodeIndex,int *pNode);

        void TreeTraverse();

    private:

        int *m_pTree;

        int m_iSize;

    };




    #endif // TREE_H

    #endif // TREE_H


数据结构探险之树篇

树,将为你开启更精彩的数据结构大门,了解更多概念

56461 学习 · 116 问题

查看课程

相似问题