为了账号安全,请及时绑定邮箱和手机立即绑定

只遍历了3个数,后面插入的被吃了

http://img1.sycdn.imooc.com//5a11505e0001434102910221.jpg

http://img1.sycdn.imooc.com//5a11505e0001c39d01850229.jpg

照着老师的编写的,不知道哪出错了T-T

Tree::Tree()
{
	m_pRoot = new Node();
}


Tree::~Tree()
{
	DeleteNode(0, NULL);
	/*m_pRoot->DeleteNode();*/   //单参数的情况下可以用这个
}

Node * Tree::SearchNode(int nodeIndex)
{
	m_pRoot->SearchNode(nodeIndex);
	return m_pRoot;
}

bool Tree::AddNode(int nodeIndex, int direction, Node * pNode)
{
	Node *temp = SearchNode(nodeIndex);
	if (temp == NULL)
	{
		return false;
	}
	Node *node = new Node();
	if (node == NULL)
	{
		return false;
	}
	node->index = pNode->index;
	node->data = pNode->data;
	node->pParent = temp;
	if (direction == 0)
	{
		if (temp->pLChild != NULL)
		{
			return false;
		}
		temp->pLChild = node;
	}
	if (direction == 1)
	{
		if (temp->pRChild != NULL)
		{
			return false;
		}
		temp->pRChild = node;
	}
	return true;
}

bool Tree::DeleteNode(int nodeIndex, Node * pNode)
{
	Node *temp = SearchNode(nodeIndex);
	if (temp == NULL)
	{
		return false;
	}
	if (pNode != NULL)
	{
		pNode->index = temp->index;
		pNode->data = temp->data;
	}
	temp->DeleteNode();
	return true;
}

void Tree::PreorderTraverse()
{
	m_pRoot->PreorderTraverse();
}

void Tree::InorderTraverse()
{
	m_pRoot->InorderTraverse();
}

void Tree::PostorderTraverse()
{
	m_pRoot->PostorderTraverse();
}


正在回答

1 回答

好吧,是我搞错了!T-T

Node * Tree::SearchNode(int nodeIndex)

{

    m_pRoot->SearchNode(nodeIndex);

    return m_pRoot;

}

要改回这个

Node * Tree::SearchNode(int nodeIndex)

{

return m_pRoot->SearchNode(nodeIndex);

}

才行,犯了个小错误

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

只遍历了3个数,后面插入的被吃了

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号