Showing posts with label structuri de date. Show all posts
Showing posts with label structuri de date. 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)

Thursday, September 28, 2017

Cărți de structuri de date

În opinia mea cărțile de structuri de date reprezintă abecedarul definirii și utilizării re resurse pentru orice dezvoltator de software, fără a trece la scrierea de variante de programe, prin alegerea celor mai potrivite dintre ele, pornind de la cunoașterea în prealabil a proprietăților pe care structurile de date le au. Una este a scrie un program de inversare a unei matrice folosind ca structură de date o matrice definită prin linii și coloane și cu totul altfel stau lucrurile dacă programatorul va construi un fișier în care are atâtea articole câte elemente are matricea sau și mai rău, linii sau câte coloane are matricea, iar referirea unui element ar presupune de fiecare dată deschiderea fișierului, cu localizarea elementului căutat.  dacă însă se lucrează cu o matrice rară de un milion de linii și un milion de coloane, ar fi o catastrofă să se lucreze cu blocuri de  matrice de dimensiuni mai mici definite static în loc să se lucreze cu o structură dinamică să zicel listă dublu înlănțuită.
Cam toate cărțile de structuri de date sunt construite după aceeași regulă, folosindu-se un șablon unitar pentru fiecare structură, descriere, proprietăți, funcții, soluții pentru operații pe ele cu proceduri nerecursive, proceduri recursive, evaluări de complexitate și biblioteci eficiente de texte sursă cu abordări clasice, respectiv, obiectuale. Există nenumărate cărți despre acest subiect și am extras doar o parte din ele, fiindcă nenumărați autori au fost ispitiți să scrie în legătură cu acestea, căci perfecțiunea atrage ca un magnet. Cărțile de  structuri de date își au rădăcinile în vechimea programării de la tătucul D.E. KNUTH, căci ele a scris cu ardoare despre toate acestea folosind calculatorul său ipotetic cu soluțiile perfecte date în limbajul perfect MIX, niciodată, bag samă, implementat 100% și la scară planetară pentru a fi folosit de noi, epigonii săi cei nevrednici.
  • 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
  • Cristian BOLOGA - Algoritmi si structuri de dateEditura RISOPRINT, Cluj-Napoca, 2005, ISBN 973-651-003-8, 323pg.
  • Ioan TOMESCU - Data Structures, Editura Universitatii Bucuresti, Bucuresti, 2004, ISBN 973-575-866-0, 206 pg.
  • Emanuela CHERCHEZ, Marinel ȘERBAN - Programarea in limbajul C/C++, Editura POLIROM, Iasi, 2006, 291pg, ISBN (10)973-46-0109-1
  • Valentin CRISTEA, Irina ATHANASIU, Eugenia KALISZ, Valeriu IORGA - Tehnici de programare, Editura TEORA, Bucuresti, 1997, 169 pg, ISBN 973-601-072-4
  • Marian GHEORGHE, Octavian PATRASCOIU, Marius MARIAN, Eugen DUMITRASCU - Tehnici de programare Editura Universitaria, Craiova, 2007, 217pg, ISBN 973-742-304-6
  • Ion IVAN, Cristian IONIȚĂ, Cătălin BOJA, Marius POPA, Adrian POCOVNICU, Daniel MILODIN - Practica dezvoltarii software orientata pe structuri de date, Editura ASE, Bucuresti, 2005,223pg, ISBN 973-594-630-0
  • Valeriu IORGA,Cristian OPINCARU, Corina STRATAN, Alexandru CHIRIȚĂ - Structuri de date si algoritmi. Aplicatii C++ folosind STL, Editura POLIROM, Iasi, 2000, 349pg, ISBN: 973-681-872-1
  • Clara IONESCU TEXE - Proiectarea si analiza structurilor de date spatiale. Quad-arbori,Editura Presa Universitara Clujana, Cluj Napoca, 2006,360 pg., ISBN (10)973-610-460
  • Mirela Catrinel VOICU - Aplicatii cu baze de date si structuri de date in JAVA, utilizand mediul de programare JBuilder, Editura Universitatii de Vest EUV, Timisoara, 2007, 191pg, ISBN 978-973-125-128-8
  • Ion ODĂGESCU, Gheorghe MANOLACHE - Structuri arborescente de date aplicate in economie,Editura Universitatea XXI, Iasi, 2008, 212pg, ISBN 978-973-7889-82-9
  • Catalin NĂCHILĂ, Dorel DUȘMĂNESCU - Structuri de date si algoritmi in limbajul C++,Editura SOLNESS, Timisoara, 2009, 313pg, ISBN 978-973-729-187-5
  • Teodor RUS - Data structures and operating systems, John Wiley & Sons, Bucureşti, 1979, 364 pg.
  • Ion IVAN, Paul Pocatilu,  Romică ADAM, Mark ZSOLT- Structuri de date. Culegere de probleme, ASE Bucureşti, 2000
  • Ion IVAN, Romică ADAM - Structuri de date si Programe Pascal, Bucuresti,1992
  • Ion IVAN, Romică ADAM - Culegere de probleme – Structuri de date, Bucuresti, 1992
  • Ion IVAN, Doru UNGUREANU - Structuri de Date. Ghid pentru elaborarea proiectelor, Editura ASE, Bucuresti, 2003, 70 pg., ISBN 973-594-316-6.
Am a mă lăuda și eu cu ceva: câteva zeci de ani am predat la studenții de la secția de informatică disciplina numită Structuri de date, care are corespondent pe colo și pe colo Data structure, iar faptul că am stămânit cât de cât programarea în limbaje de asamblare mi-a permis să văd dincolo de banalitatea de progrmator, ce și cum cu utilizarea eficientă a zonelor de memorie ca raport între ceea ce este ocupat de informația utilă, de ceea ce este folosit pentru implementarea mecanismelor de referire a elementelor din fiecare tip de structură de date. 



(28 septembrie 2017)