学习数据结构的第七天(一)

  学到了:1.对于set,有linkedlistset和bstset两种解决办法。

2.对于这个map而言,其实就是相当于set添加了一个元素在里面而已。即:只需要修改结点处的内容即可。

3.对于map,还需要知道一件事情。如果说contains相应的key在里面了,那么就不能进行add的操作。这是对add需要注意的一个点。

对于用bst来实现set和map,由于:set和map里面都需要实现的一个较为重要的接口是:remove 

所以 先把bst的remove的实现先学习了。

先把removemin和removemax的内涵放在下面:

 对于普通的remove而言:

 

 

以上是关于在bst里面如何移动元素的最终:

拿被移动元素的左子节点将其进行替换,并且递归调用被移动的节点,直到到达结尾的时候,拿剩余的节点替换,如果是右子节点,那么就拿右子节点放上去。

对于removeMin是把右子节点放上来,并且不需要递归了。原因:递归是因为不知道如何继承了原来的子节点。那么因为是min,导致必定有左子树为空这一点,然后右子树放上来,就不存在继承问题了。

对于第二篇文章,将把removeMin 、removeMax remove操作给真正实现。

猜你喜欢

转载自www.cnblogs.com/startFrom0/p/12617298.html