建立树 并 显示树

/*
a00
 |__b01
 |   |__d02
 |   |   |__f03
 |   |   |__g13
 |   |__e12
 |__c11
*/
#include <iostream>
#include <stdlib.h>
#define MAX 10
using namespace std;
class Table;
class Node;
class Node
{
    friend class Table;
    private:
        char sName;
        int iNextnum;
        Node *pNext[MAX];
        int iPrize;
        int iX;
        int iY;
    public:
        Node()
        {
            cout<<"sName:";
            cin>>sName;
            cout<<"iNextnum:";
            cin>>iNextnum;
            cout<<'/n';
        }   
};

class Table
{
    private:
        Node *pFirst;
        void createtable(Node *);
    public:
        void print(Node *);
        void Table::print0(Node *);
        Node *First()
        {
            return pFirst;
        }   
        Table()
        {
            pFirst = new Node;
            pFirst->iX = 0;
            pFirst->iY = 0;
            createtable(pFirst);
        }
}; 
void Table::createtable(Node *p)
{
    int i;
    if(p->iNextnum != 0)
    {
        for(i = 0; i < p->iNextnum; i++)
        {   
        p->pNext[i] = new Node;
        (p->pNext[i])->iX = i;
        (p->pNext[i])->iY = p->iY + 1;
        createtable(p->pNext[i]);
        }
        for(i = p->iNextnum; i < MAX; i++)
        {
            p->pNext[i] = NULL;
        }   
    }
    else
    {
        for(i = 0; i < MAX; i++)
        {
            p->pNext[i] = NULL;
        }   
    }       
}
void Table::print0(Node *p)

}   
void Table::print(Node *p)
{
    int i;
    cout<<p->sName<<'('<<p->iX<<','<<p->iY<<')'<<',';
    if(p->iNextnum != 0)
    {
        for(i = 0; i < p->iNextnum; i++)
        {   
        print(p->pNext[i]);
        } 
    }
    else
    {
    }       
}

int main(int argc, char *argv[])
{
  Table table;
  table.print(table.First());
  table.print0(table.First());
  system("PAUSE"); 
  return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值