C++【红黑树--debug】

        上一节,手撕了一个红黑树。本来是要封装一下map,结果出现了一个bug是上节没有发现的。

#include"MySet.h"
#include"MyMap.h"

int main()
{
	ltq::map<int, int> m;

	m.insert(make_pair(1,1));
	m.insert(make_pair(3,3));
	m.insert(make_pair(2,2));
	cout << m.isTrue() << endl;

	return 0;
} 

        可以看到,程序崩掉了。正好记录一个debug过程,先不要给断点,看看程序崩在哪里,直接按F5.可以看到:

        可以发现,当前程序死在了对空指针的引用上。程序问题出在 左旋函数上,一般情况下我们需要对第三次的插入过程进行整体分析,因为程序有可能在左旋之前就已经发生了错误;

分析整个插入的过程:

        逐步分析可以看到:

 

        右旋函数的判断条件出现错误;至此debug结束;修改重新运行:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值