Eu sunt bagat complet in ceata de ultimele reply-uri.<br><br>Din cate am inteles eu din ce am citit si din implementarea proprie, Victor in momentul in care face resize(sa zicem double) face prima data un realloc pe vector-ul de buckets(sper sa nu ma insel). In continuare redistribuie doar cuvintele care nu corespund dupa schimbarea dimensiunii hash-ului. Spre deosebire de cealalta varianta posibila, care presupune crearea unui nou hash de la 0, care am inteles ca ar fi varianta propusa de echipa de SO(yet again nu sunt foarte sigur de asta, pentru ca sunt foarte ambigue explicatiile).<br>
<br>Deci mai la obiect, cum procedam in cazul resize?<br>1) realocam hash-ul initial cu realoc, si dupa doar il "corectam" unde e "gresit" , adica in cazul in care in bucket-ul x gasim un cuvant care corespunde lui x il lasam unde e si mergem mai departe, daca in schimb dupa redistribuire corespunde lui y, il stergem din x(cu remove) si il adaugam in y.<br>
2) alocam un hash nou, il parcurgem pe cel vechi incepand de la bucket-ul 0, adaugam in cel nou cuvintele, si il stergem pe cel vechi.<br><br>Dpmdv, ambele variante sunt deterministe, deci nu cred ca se poate argumenta acest lucru impotriva oricareia dintre variante, asadar in esenta totul se reduce la intrebarea: <br>
Cum e implementata solutia oficiala?<br><br>-- <br>Razvan Ghitulete<br>Universitatea Politehnica Bucuresti<br><br>