Structuri de date dinamice decembrie - informatică, programare

Ministerul Educației și Științei

Agenția Federală pentru Educație

Instituție de învățământ de stat de învățământ superior

„Universitatea Tehnică de Stat Omsk“

Departamentul de Matematică Aplicată și Information Systems

Curs de lucru în disciplina „Metode de nivel înalt“

Structuri de date dinamice: Dec.

Apendicele 1. Textul programului

Apendicele 2 Formular

programarea orientată spre obiecte - o extensie naturală a programării structurate. Programarea orientată spre obiect necesită un program complex de acțiune, dar nu creează un program destul de ușor. Acest lucru creează coduri perfecte, care sunt ușor de a distribui și simplu pentru a menține. Odată creat, obiectul aplicație poate fi utilizată și în alte aplicații. Refolosirea obiecte reduce mult timpul de dezvoltare și crește productivitatea. Programarea orientată pe obiecte se bazează pe utilizarea de clase. Folosind clase - este principala diferență între limbajul C ++ din limbajul C, pe care se bazează.

Clasa, împreună cu conceptul de „obiect“ este un concept important al programării orientate pe obiecte. Prin clasa se înțelege o entitate care definește un comportament comun pentru obiecte. Astfel, orice obiect poate aparține sau nu să aparțină unei anumite clase, care este, sau nu poate avea un comportament care clasa înseamnă. Clasa definește regulile pentru obiectul cu care obiectul poate opera alte obiecte, acest lucru se face de obicei prin definirea metodele clasei.

În plus, clasele pot fi unele cu altele în diferite moduri, cum ar fi moștenire sau agregare.

Class - o colecție de informații conectate, care include atât date și funcții. Clasa - o dezvoltare în continuare a structurilor: integrează, de asemenea, date de la diferite tipuri de ele. Acesta este același model, în conformitate cu care, ca structură, memoria este alocată numai atunci când vom crea un „șablon acest tip de variabilă.“

Clasa este definită ca o listă a membrilor săi. Pentru membrii clasei sunt domeniile sale (proprietăți) și funcții (metode).

Fiecare membru al clasei, puteți instala zona de acces (nivel de control de acces). Membrii clasei zona de acces definește secțiuni de cod de la care respectivul membru ar fi posibil să se ocupe. În cele mai multe limbaje de programare orientate-obiect sunt susținute de următoarele zona de acces:

· Private (clasa privata, membru intern) - se referă la membrul respectiv este permis doar din codul de metode de clasă în care este definit acest termen. Orice subclasa nu va fi capabil de a avea acces la acel membru;

· Protejată (protejate, membru intern al ierarhiei clasei) - circulatia la nivelul penisului sunt permise în codul metodelor de clasă în care acest termen este definit, sau oricare dintre clasele sale derivate;

· (Membru clasa deschisa) Public - circulatia la nivelul penisului permise de la orice cod.

Fiecare clasă definește caracteristicile obiectelor care utilizează o anumită clasă. Clasa stabilit, de asemenea, programul, numit metoda care se ocupă de caracteristicile obiectelor care aparțin acestei clase. Comportamentul unui obiect din lumea reală este determinată de caracteristicile sale. Prin schimbarea caracteristicilor, obținem un comportament diferit de obiecte. Când vom crea o instanță a clasei și de a determina valoarea caracteristicilor sale specifice, obținem un anumit obiect. Ca parte a clasei există o metodă specială, care creează o instanță a clasei. Această metodă este numele designerului. Spre deosebire de constructor, destructor, există un program care distruge instanța de clasă în memorie.

Crearea unei clase „Decembrie“.

1. Adăugarea unui element la puntea superioară.

2. Eliminarea unui element de la începutul pachetului.

3. Adăugarea unui element la capătul punții.

4. Ștergerea unui element de capătul punții.

5. Verificarea prezenței elementelor de punte ale acestora.

Structuri de date dinamice: Dec.

În limbaje de programare, există o modalitate de a aloca memorie pentru date, care se numește dinamică. În acest caz, memoria pentru valoarea atribuită în timpul rulării. Aceste valori sunt numite dinamice. Memoria CATEGORIE care urmează să fie alocate static, numită memorie statică; alocă în mod dinamic secțiune de memorie numită o memorie dinamică (memorie heap).

Utilizarea cantități dinamice oferă programatorului o serie de caracteristici suplimentare. În primul rând, conexiunea de memorie dinamică poate crește cantitatea de date care sunt prelucrate. În al doilea rând, în cazul în care nevoia de date eliminate înainte de sfârșitul programului, memoria ocupată de acestea pot fi eliberate pentru alte informații. În al treilea rând, utilizarea memoriei dinamice vă permite să creați structuri de date de dimensiuni variabile.

Lucrul cu valori dinamice asociate cu utilizarea unui alt tip de date - tipul de referință. Variabilele cu un tip de referință, numit indicii.

Tipuri de date structurate, cum ar fi matrice, o multitudine de înregistrare, sunt structuri statice, deoarece dimensiunile lor rămân neschimbate pe toată perioada programului.

De multe ori este nevoie ca structuri de date modifica dimensiunile lor, în cursul rezolvării problemei. Aceste structuri includ liste (odnapravlennye, bidirecțională, circular și inelar odnapravlennye bidirecțională), stive, punte, cozi, copaci și altele. Descrierea structurilor dinamice folosind tablouri, înregistrări și fișiere ce duce la irosirea a memoriei calculatorului și mărește problemele timpului de soluționare.

structură dinamică numit descompuneri (Engl deque - o abreviere de coadă cu două capete, deque.) sau o listă bi-direcțională în cazul în care fiecare dintre asamblare sale cuprinde două indicii: una se referă la nodul precedent, un alt - pentru următorul. Aceste liste pot fi liniare sau ciclice, iar membrii ei sunt adăugate și îndepărtate din cele 2 părți.

Structuri de date dinamice decembrie - informatică, programare

Structuri de date dinamice decembrie - informatică, programare

Vom distinge între punți cu port de ieșire restrânsă sau limitată; în aceste punți, respectiv, excluderea sau includerea este permisă numai la un capăt.

Structuri de date dinamice decembrie - informatică, programare

Structuri de date dinamice decembrie - informatică, programare

Fig. 2. decembrie, cu o putere limitată

Structuri de date dinamice decembrie - informatică, programare

Structuri de date dinamice decembrie - informatică, programare

Fig. 3. Decembrie randament limitat

Decembrie de intrare limitată poate fi folosit la fel de simplu ca o stivă sau coadă.

Puntea toate excepțiile și completările apar la ambele capete.

Decembrie pur și simplu poate aranja o listă aciclic dvusvyazannogo. În acest caz, prima și ultima elemente din listă corespund de intrare (ieșire) punte.

clasa generată în programul numit DEQ.

Această clasă trebuie să pună în aplicare funcția de inserție și îndepărtarea elementelor de la începutul și la sfârșitul punte.

Pentru a crea o clasa „Decembrie“ trebuie să creeze mai întâi o structură cu un element de pointer la elementul următor. În acest program, o astfel de structură este nod.

Când creați o clasă de care aveți nevoie pentru a crea indicii la prima și ultimele elemente ale pachetului. Aceste semne sunt scrise în particular, t. E. Consultați aceste semne este posibilă numai clasa metoda DEQ.

În domeniul metodelor publice clasa de acces prescrise prescrise în formularea problemei.

Semne atribuite inițial valoare gol (NULL).

Adăugarea unui element la puntea superioară

Pentru a adăuga un element la puntea superioară este utilizată metoda de clasă adăuga. Parametrii săi se adaugă elementul b.

Este necesar să se creeze o nouă structură de element nod (el). El element este setat la numărul introdus cu tastatura. Pentru a adăuga un element la partea de sus a pachetului, este necesar ca celula era goală. Prin urmare, condiția este testată în prezența celulei elementului. În cazul în care celula nu este gol, indicatorul la primul element se muta la celula următoare, și în care se înregistrează elementul. Numărul de celule crește cu 1.

Eliminarea unui element de la începutul punte

Pentru a elimina un element de la începutul pachetului folosind o metodă de clasă șterge.

Element de îndepărtare are loc folosind același algoritm, dar celula nu este verificată pentru elementul prezență în acesta. El elementul atribuit un pointer si un pointer primele mișcări la celula următoare. Apoi elementul el este îndepărtat și numărul de celule este redus cu unul.

Adăugarea unui element la capătul punții

Pentru a adăuga un element la puntea superioară este metoda clasa add_end second-hand. Parametrii săi se adaugă elementul b.

Este necesar să se creeze o nouă structură de element nod (el). El element este setat la numărul introdus cu tastatura. Pentru a adăuga un element la sfârșitul punte, este necesar ca celula era goală. Un pointer la ultimul element se muta la celula următoare, care vor fi înregistrate element. În continuare, un pointer la ultimul element se muta la celula următoare, care este setat la NULL. Numărul de celule crește cu 1.

Ștergerea unui element din capătul punții

Pentru a elimina un element de la începutul pachetului folosind o delete_end metodă de clasă.

Pentru a scoate elementul din capătul punții trebuie să creeze un nou element de structuri nod (el). El elementul atribuit un pointer la primul element. În timp ce el nu ia valori NULL, elementul va fi setat la elementul următor. Apoi, el eliminat și trimiterea la ultimul element i se atribuie o valoare de el. Numărul de celule este redus.

Verificarea prezenței elementului punte în acesta

Pentru a testa punte utilizată metoda clasei prov. Această metodă este de tipul Boolean.

Pentru a verifica prezența elementelor în punte, o nouă structură element de nod și este atribuit un pointer la primul element de punte. În cazul în care celula nu este gol, atunci se returnează adevărat, în caz contrar, fals.

O funcție în punte StringGrid

Această funcție este necesară pentru a afișa inserarea și îndepărtarea elementelor din StringGrid tabel. Caracteristică crește numărul de celule din tabel, în cazul în care detectează că celula nu este gol.

Închideți programul puteți să faceți clic pe butonul „Close“ sau F10. Concluzie În calificare am încercat să dezvăluie mai deplin și clar conceptul unei liste liniare, liste unidirecționale și bidirecționale, stive, cozi, și punte. Pentru a forma și consolida interesul educațional în acest subiect în rândul studenților. Să identifice și să dezvolte abilități creative de a folosi abilitățile dobândite la.

Structuri de date dinamice decembrie - informatică, programare
Structuri de date dinamice decembrie - informatică, programare
Structuri de date dinamice decembrie - informatică, programare
Structuri de date dinamice decembrie - informatică, programare
Structuri de date dinamice decembrie - informatică, programare

folosind o linie matrice sau lista folosind o matrice sau o listă. Acum ia în considerare seria de Brodarea structura de date de mai sus și reprezentarea lor în peste prstye aplicabile limbajului Pascal. 2.2 _Massiv variabilă sau constantă cu o structură matrice, servește scopului set de elemente de același tip. Din fiecare componentă individuală a șirului.