Showing posts with label arbore binar. Show all posts
Showing posts with label arbore binar. Show all posts

Wednesday, November 29, 2017

Structuri de date și literatură

Structurile de date și literatură oricât s-ar părea de bizar, ele există și lumea trebuie să știe de ele. Marele Mihail EMINESCU a folosit stiva în mod magistral.
În Glossa prima strofă este:
Vreme trece, vreme vine, 
Toate-s vechi si noua toate; 
Ce e rau si ce e bine 
Tu te-ntreaba si socoate; 
Nu spera si nu ai teama, 
Ce e val ca valul trece; 
De te-ndeamna, de te cheama, 
Tu ramâi la toate rece.
Ultima strofă este:
Tu ramâi la toate rece, 
De te-ndeamna, de te cheama: 
Ce e val, ca valul trece, 
Nu spera si nu ai teama; 
Te întreaba si socoate 
Ce e rau si ce e bine; 
Toate-s vechi si noua toate: 
Vreme trece, vreme vine.
Ultimul vers devine primul vers în ultima strofă. Penultimul vers din prima strofă devine al doilea vers în ultima strofă, deci se aplică regula ultimul venit, primul servit, ceea ce corespunde traversării unei stive, după regula LIFO - Last-in-First-out.
Poetul George Coșbuc a scris versurile din poemul Nunta Zamfirei:
Trei paşi la stânga linişor
Şi alţi trei paşi la dreapta lor;
Se prind de mâini şi se desprind,
S-adună cerc şi iar se-ntind,
Şi bat pământul tropotind
În tact uşor.
Cuvintele S-adună cerc înseamnă că se crează o listă circulară dublu înlănțuită. Cuvintele şi iar se-ntind arată că lista circulată se transformă în listă liniară dublă. Versul Trei paşi la stânga linişor arată cum se traversează lista de la dreapta spre stânga. Versul i alţi trei paşi la dreapta lor evidențiază traversarea listei duble de la stânga spre dreapta. Cuvintele se desprind arată operația de deconcatenare, iar cuvintele Se prind de mâini arată că fora are o operație de concatenare a mai mltor liste duble.
Și la definirea structurii de tip articol lucrurile stau tot în spirit dacic. Construcția unei expresii de referire este una, dar citirea este extrem de interesantă.
Expresia:
 nume1.nume2.nume3
merită un studiu aparete, căci iată cum se interpretează expresia:
deal.Mărin.Leana
dacă se traversează de la dreapta la stânga: Leana lu'Mărin din deal. Și numele irlandezilor cu acel O urmat de un apostrof tot cam pe acolo este, dar la noi este exact ce vor structurile de date.





(26 noiembrie 2017

Sunday, November 5, 2017

Structuri de date

Disciplina Structuri de date se găsește în străinătate la alte universități sub denumirea Data Structures sau Structures de données. Ideia de bază a fost că la formularea programei analitice am procedat astfel:
- menținerea unei denumiri unanim recunoscute;
- includerea de cursuri care se regăseau la mari universități;
- existența unei corespondențe cu cărți celebre;
- preluarea unul vocabular format din cuvinte cheie consacrate.
Am avut la bază lucrările lui KNUTH și WIRTH dar și multe altele. Pe Dâmbovița se impune ca tot profesorul care ține un curs să-și scrie cartea lui, ceea ce mi se pare un pic vulgar, din moment ce pe la case mult mai amri se alege o carte de succes din domeniu și se predă după ea, fără ca profesorului care o folosește să-i cadă cumva blazonul. La noi niecare face cartea lui, chiar dacă ceea ce face nu este de top. Când am anunțat la un curs că voi preda după o anumită carte referită prin: Aaron M. TENENBAUM, Yedidyah LANGSAM, Moshe J. AUGENSTEIN - Data Structure Using C,Prentice-Hall Englewood Cliffs, New Jersey, 1990, 661 pg.,ISBN 0-13-0200411-9, am fost tras de urechi de către colegi, că trebuie să am cursul meu. Eu scrisesem împreună cu Romică ADAM și curs și culegere de probleme, dar mi se părea necesară o aliniere la ceea ce face lumea bună, inclusiv vecinii noștri bulgari. Adică să predăm după lucrări celebre care săp facă ușoară echivalarea de studii pentru absolvenții care pleacă să lucreze în alte țări. În vogă mai era cartea deosebită referită prin: Robert KRUSE - Data Structures and Program Design, Prentice Hall Inc, Englewood Cliffs, N.J., 1994,
485pg, ISBN 0-13-196253-1.
Un curs de structuri de date care se respectă are în el capitole despre:
- tipuri abstracte de date;
- masive;
- articole;
- fișiere;
- liste simple;
- liste duble;
- stvă;
- coadă;
- arbori binari;
- arbori B;
- grafuri;
- obiecte.
Am pornit în 1990 la structurarea disciplinei folosind cartea Niklaus WIRTH -Alorithms + Data Structures = Programs, Prentice-Hall Englewood Cliffs, New Jersey, 1976, 366 pg.,ISBN 0-13-022418-9 dar și volumul 1 din Tratatul de programare a calculatoarelor al lui D.E. KNUTH, apărut în Editura tehnică.
 N-am uitat că prietenul și colegul meu Valer ROȘCA inclusese în lucrarea INFORMATICA, publicată în 1987 în Editura științifică și enciclopedică din București,  a cărei coordonare o asigurase conferențiarul Gh. DODESCU, un capitol de structuri de date.
 Nu am găsit necesar să includ sortarea acolo, căci mi se parte ca aceasta să fie tratată la grămadă cu operațiile de creare, numărare, inserare, ștergere, traversare, conversie, agregare, interschimb, restructurare, dar și cu alte operații, atât realizate ca proceduri clasice, cât și ca proceduri recursive căci sunt ceva mai  drăgălașe.. Am agreat realizarea structurilor de date folosind alocări dinamice, fiind enervat de așa-zisele simulări folosind vectori în memorie. Mi s-a părut interesantă definirea unor metrici din care să rezulte care sunt momentele când este rezonabil să se folosească o anumită structură de date și nu alta.
A, admirat lucrarea referită prin Saumyendra SENGUPTA, Carl Philip KOROBKIN - C++ Object-Oriented data Structured,Springer Verlag, Berlin, 1994, 708 pg.,ISBN 0-387-94194-0, mai ales că avea programe complete și un CD, iar bibliotecile de funcții erau perfecte.
Am scris împreună cu un colectiv de peste 20 de cadre didactice la mai toate universitățile de la noi și din R: Moldova o carte de structuri de date în două volume referită prin:
Ion IVAN, Marius POPA, Paul POCATILU - Structuri de date, Vol. 1, Editura ASE, Bucuresti, 2008, 768 pg., ISBN 978-606-505-032-7. 
Ion IVAN, Marius POPA, Paul POCATILU - Structuri de date, Vol. 2, Editura ASE, Bucuresti, 2008, 532 pg., ISBN 978-606-505-033-4
care a fost recompensată cu premiul Tudor TĂNĂSESCU al Academiei Române pe anul 2008.
Un impact major l-a avut lucrarea de la editura TEORA realizată de un grup de profesori din Universitatea Politehnica și referită prin: Valentin CRISTEA, Irina ATHANASIU, Eugenia KALISZ, Valeriu IORGA - Tehnici de programare, Editura TEORA, Bucuresti, 1997, 169 pg, ISBN 973-601-072-4. Procedurile incluse în paginile acestei cărți sunt de o frumusețe clasică, dusă la perfecțiune. Este deosebit de important pentru toți programatorii să gestioneze corect structurile de date căci între un program foarte bun și unui bun, acum când toate aplicațiile sunt de tip online, diferența este imensă, fiind preferat programul foarte bun, bazat pe o alegere a unei structuri de date eficiente, care face ca durata tranzacției să fie minimă, lucru agreat de fiecare utilizator, adică de fiecare client.



(05 noiembrie 2017)