Homework_5

来源:互联网 发布:腓骨长肌腱滑脱 知乎 编辑:程序博客网 时间:2024/05/20 01:39

Part 1部分相对比较简单,即是迁移了部分method,然后加了一个新的variable来存list。

DList myList = (DList) this.myList;
大概解释一下这句话,DListNode是extends ListNode这个class的,myList是在ListNode这个class里面定义的,所以子类自动获取(继承)了这个Variable。且这个Variable是remote control List这个class的,所以得强制转型(class cast)来使其获得DList的一些特殊功能。因为我们是清楚的,这个this.myList这个object本质就是披着List的DList。

Part 2确实...算有一定难度。

但是瞎搞还是能搞出来。

Insert就是从头到尾,一个一个找,直到找到比自己大的放下即可。遇到相等或者比这个item小的都跳过就行。

Union:思路即是,拿着s的最小元素开始,并从this的最小元素开始,只记着s的元素 < this的元素,就放。然后不同条件下,不同的set move到下一个node。

而且还要巧妙利用catch exception,可以省不少事,还可以留空catch,也可以省不少事(相当于帮你判断是否到boundary)。

Interse:我的思路是把真正的新元素都放在这个set的最后insertBack,这样刚好也能maintain它的顺序。之后再把前面的重复或没用的都remove掉即可。To be specific,记个数,用for remove掉。最后这个intersect很快就写好,没有ji xi去想更好的方法,也许可以写个private helper直接从头开始覆盖?