我想将(简单链接)列表转换为从链接列表派生的跳过列表。在将(链接)列表作为参数的转换 ctor 内部,我在 *. 我只是从 main 调用那个 ctor 一次。新的 SkipList 怎么可能被循环调用?
class SkipList : public List {
public:
SkipList(SkipListEl* first) : List (first){};
SkipList(const List& sl){
ListEl* fst = sl.getFirst();
new SkipList(fst); // * <- stackoverflow
while(fst->hasNext()){
new SkipListEl(*fst);
fst = fst->getNext();
}
};