treeselect 清空销毁树_建立一棵二叉树,要求先建立一个空树InitTree()和销毁树DestroyTree()函数,...

展开全部

#include

using namespace std;

// 二叉树结点类

struct BinTreeNode

{

// 数据成员:

double data; // 数据域

BinTreeNode *leftChild; // 左孩子32313133353236313431303231363533e59b9ee7ad9431333337396233指针域

BinTreeNode *rightChild; // 右孩子指针域

BinTreeNode(){ leftChild = rightChild = NULL;}; // 无参数的构造函数

BinTreeNode(double &val,BinTreeNode *lChild = NULL, BinTreeNode *rChild = NULL);

};

BinTreeNode::BinTreeNode(double &val, BinTreeNode *lChild,BinTreeNode *rChild)

{

data = val; // 数据元素值

leftChild = lChild; // 左孩子

rightChild = rChild; // 右孩子

}

//节点类,其数据成员为二叉节点类型的指针

struct Node

{

BinTreeNode *data; // 数据域

Node *next; // 指针域

Node(){ next = NULL;};

Node( BinTreeNode *item, Node *link = NULL){ data = item; next = link;};

};

//队列类,作为层次遍历的辅助数据结构用

class LinkQueue

{

protected:

Node *front, *rear;

public:

LinkQueue(){rear = front = new Node; };

void OutQueue(BinTreeNode * &e); // 出队操作

void InQueue(BinTreeNode * &e); // 入队操作

bool Empty(){return front==rear;};

};

void LinkQueue::OutQueue(BinTreeNode * &e)

{ Node *tmpPtr = front->next;

e = tmpPtr->data;

front->next = tmpPtr->next;

if (rear == tmpPtr)

{

rear = front;

}

delete tmpPtr;

}

void LinkQueue::InQueue(BinTreeNode * &e)

{

Node *tmpPtr = new Node(e);<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值