Programator Paternoster
Ne-am ocupat de numărarea cuvintelor în postarea noastră anterioară: referindu-ne în avans la Google MapReduce. Vom scrie acum programul de numărare a cuvintelor structurat în C al cărții K&R în C ++ prin simplificarea codului clasei noastre anterioare. Vom împinge backspace-ul profund, deoarece va fi o raționalizare reală, deoarece în sarcina actuală nu trebuie să construim arborele binar cu logica algoritmului LZW, ci doar natura a'la.
Am putea face struct tnode supraîncărcat * copac (struct tnode *, char *), dar hai să fim puțin mai creativi! (În cazul nostru, desigur, ar fi un Nod * în loc de struct tnod *.)
„Nodul” începe întotdeauna de la rădăcină și indică locul în care încercăm să inserăm noul cuvânt pe care l-am primit. Inițial, nu există niciun copac (spre deosebire de exemplul nostru LZW, rădăcina nu se afla în spațiul de stocare gratuit, dar stiva a fost acolo în mod implicit) deci, cu primul cuvânt, ramura dacă preia cuvântul. Apoi, al doilea cuvânt, dacă primul se potrivește cu conținutul, apoi, în funcție de primul, dacă ramură, mărim doar contorul nodului curent, dacă acesta era mai mic, apoi în dreapta, dacă este mai mare decât în subarborele din stânga (sau vice versa:) va rog din nou inserarea.
Faceți clic pe linkul de mai jos pentru a obține sursa completă sau câteva soluții alternative de „numărare de cuvinte”.
- Frigarui de pui cu sos cremos de arahide Marie Claire
- Viermii bifează Un frotiu din nasul unui copil pe o plantă
- Rețetă de paella de pui
- Ficatul de pui în dietă; Frumuseţe
- Vrei să slăbești Ascultă muzică în timp ce alergi! nlc