C++中编程出现function does not take 1 parameters,求指正

2025-02-25 10:14:00
推荐回答(1个)
回答1:

好了,测试通过,请采纳

#include 
using namespace std;
typedef char TElemType;
const char space='^';
const int MAX_NODE_COUNT=20;
typedef  struct BTreeNode
{
    TElemType  data;
    struct BTreeNode *left ,*right;
}*Root;
class BTree
{
public:
    Root rt;
public:
    BTree (){rt=NULL;}
    void CreateBTree();
    void DLRTraverse();
    void LDRTraverse();
    void LRDTraverse();
    int depth(Root);
};

void BTree::CreateBTree()
{
    char value;
    cin>>value;
    if (value==space)
        return;
    rt=new BTreeNode;
    rt->data=value;
    BTree left,right;
    left.CreateBTree();
    right.CreateBTree();
    rt->left=left.rt;
    rt->right=right.rt;
}

void BTree::DLRTraverse()
{
    if (rt)
    {
        BTree left,right;
        left.rt=rt->left;
        right.rt=rt->right;
        cout<data;
        left.DLRTraverse();
        right.DLRTraverse();
    }
}

void BTree::LDRTraverse()
{
    if (rt)
    {
        BTree left,right;
        left.rt=rt->left;
        right.rt=rt->right;
        left.LDRTraverse();
        cout<data;
        right.LDRTraverse();
    }
}

void BTree::LRDTraverse()
{
    if (rt)
    {
        BTree left,right;
        left.rt=rt->left;
        right.rt=rt->right;
        left.LRDTraverse();
        right.LRDTraverse();
        cout<data;
    }
}

int BTree::depth(Root rt)
{
    int dep1,dep2;
    if(rt==NULL) return 0;
    else
    {
        dep1=depth(rt->left );
        dep2=depth(rt->right );
        return (dep1>dep2?(dep1+1):(dep2+1));
    }
}

void main()
{
    BTree T;
    T.CreateBTree();
    T.DLRTraverse();cout<    T.LDRTraverse();cout<    T.LRDTraverse();cout<    cout<}