最近遇到的错误

博客总结了编程中犯的错误。在最小堆操作里,涉及插入、删除时函数调用及变量定义的问题;二叉搜索树BST中,要注意指针赋值、镜像翻转后遍历顺序;还提到指针赋初值避免野指针,以及while循环中变量值变化的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直犯一些很憨的错误(lll¬ω¬)

1最小堆,就是基本的插入/删除操作,然后插入的时候调用up上溯函数,删除的时候调用down下溯函数

①这里的改成x!!,不改的话最后一次上溯就没法比较了,down那里没啥,因为用了child嘛
在这里插入图片描述
在这里插入图片描述

②如果Traverse里面有递归哈,那个flag判断空格的就要放在函数外面,i也要放在外面
在这里插入图片描述

另一种打印方法
没用flag,我觉得也很好哈哈

void printheap(Heap h){
	for(int i = 1; i < h->size; i++)
		cout << h->data[i] << ' ';
	cout << h->data[h->size] << endl;
}

③这里的int一定放在外面啊,for循环写顺手就直接在里面定义i了,以后尝试着改过来⑧
在这里插入图片描述

④对于up和down函数,为了方便别的位置上面的元素上溯或者下溯,,但是写的时候注意哈,x要等于传过去的h->data[k] ,不是h->data[h->size]啊啊啊

⑤对于down函数,还有一点就是不要忘记写else break;不然的话会进行for循环的第三个句子,i就不对了 ,你也可以写个flag判断一下有没有进入if里面,没进入的话,for出来那个赋值就要变一变,这样就有些麻烦了,还是按书上的来,else break 判断
在这里插入图片描述

2.二叉搜索树BST里面

①你要记得,这是指针哎,指针赋值,肯定会变哈(lll¬ω¬)
所以判断原树和镜像翻转树是不是BST的时候,在遍历那里直接变就好,不要反转过来了
在这里插入图片描述
②镜像翻转之后哈,不是后序遍历是原树的先序遍历,而是原树先序遍历的逆序,前序遍历是原树的后序遍历的逆序
在这里插入图片描述
3.
①指针赋初值,野指针会段错误┭┮﹏┭┮
②while(n–)的时候,n的值会变化的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值