Algoritmi și tehnici de programare avansată

Curs
9.5/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 16 în total
Cuvinte : 3152
Mărime: 86.79KB (arhivat)
Cost: Gratis
Algoritmi si Tehnici de Programare Avansata: Tablouri, liste, cozi, algoritmi, arbori, sortari

Extras din document

Tabloul = structura de date de acelasi tip care ocupa o zona continua de memorie.

* in limbajul JAVA acelasi tip poate fi si clasa Object

int tab[]=new int[10];

* pt String trebuie utilizata conversia cast

AVANTAJE:

- accesul rapid la elementele tabloului prin index[]

DEZAVANTAJE:

-manipularea (adaugare,inserare,stergere) se realizeaza prin deplasarea elementelor sau modificarea structurii.

Lista = set de noduri, intre noduri existand legatura.

Legaturile pot fi unidirectionale si bidirectionale.

* informatia stocata in cadrul unui nod poate sa aiba orice natura, de asemenea in cadrul unui nod exista obligatoriu legatura catre nodul urmator = referinta

* in cazul legaturii bidirectionale exista referinta si catre nodul precedent

AVANTAJE:

* nu necesita zone continue de memorie

* alocarea dinamica a unui nod (new) distribuie nodul intr-o zona libera.

* in limbajul C++ stergerea nodului dintr-o lista presupune si invocarea metodei delete care bifeaza acea zona ca fiind libera

* in JAVA nu exista operatia delete, eliminarea nodurilor sterse (bifarea nodurilor sterse ca fiind libere) fancandu-se automat.

* manipulare facila a nodurilor (inserare, adaugare, stergere)

DEZAVANTAJE:

* accesul dificil la elementele listei

* de obicei exista o referinta catre capul listei (t)

* accesul catre alte elemente facandu-se secvential, lista se va parcurge de la t pana la final.

In functie de legatura dintre noduri:

1) liste simplu inlantuite (legatura intr-un sens)

2) liste dublu inlantuite (legatura in ambele sensuri)

O lista se poate termina cu legatura catre un nod special sau referinta catre "null" sau catre primul nod (t) => liste circulare.

Nod.java

Structura.java

Testare.java

class Nod {

Object val;

Nod urmator;

// Nod precedent;

public Nod (Object val) {

this.val = val;

urmator = null;

precedent = null;

} //constructor

//fiind vorba de campuri publice nu e necesar sa definim metodele specifice (get/set)

}

Fie urmatoarea lista:

class Nod {

int val;

Nor urmator;

public Nod (public Nod) {

this.val=val;

urmator=null;

}

}

Testare.java

Nod t = new Nod(3);

t.urmator = new Nod(5);

t.urmator.urmator = new Nod(7);

t.urmator.urmator.urmator = new Nod(9);

* este esential sa cunoastem modul in care incheie lista deoarece parcurgerea secventiala trebuie sa se incheie.

* in cazul aceste "null" e conditia de incheiere.

Parcurgerea secventiala:

Nod x=t;

//x are rolul variabilei increment cauta i din

//for (int i=0;i<N;i++)

//pentru parcurgere

while (x != null) {

x=x.urmator; //i++

}

Inserarea pentru o lista simpla inlantuita:

Nod z = new Nod(9);

z.urmator = t.urmator.urmator;

t.urmator.urmator = z;

Obs: la operatia de inserare intr-o lista se conecteaza mai intai elementul nou creat.

Problema:

Fie o lista de noduri de dimensiune data. Lista reprezinta memoria disponibila pentru program. Se vor implementa operatii de creare, inserare, stergere, pt o lista folosind nodurile din lista memoriei.

Preview document

Algoritmi și tehnici de programare avansată - Pagina 1
Algoritmi și tehnici de programare avansată - Pagina 2
Algoritmi și tehnici de programare avansată - Pagina 3
Algoritmi și tehnici de programare avansată - Pagina 4
Algoritmi și tehnici de programare avansată - Pagina 5
Algoritmi și tehnici de programare avansată - Pagina 6
Algoritmi și tehnici de programare avansată - Pagina 7
Algoritmi și tehnici de programare avansată - Pagina 8
Algoritmi și tehnici de programare avansată - Pagina 9
Algoritmi și tehnici de programare avansată - Pagina 10
Algoritmi și tehnici de programare avansată - Pagina 11
Algoritmi și tehnici de programare avansată - Pagina 12
Algoritmi și tehnici de programare avansată - Pagina 13
Algoritmi și tehnici de programare avansată - Pagina 14
Algoritmi și tehnici de programare avansată - Pagina 15
Algoritmi și tehnici de programare avansată - Pagina 16

Conținut arhivă zip

  • Algoritmi si Tehnici de Programare Avansata.doc

Alții au mai descărcat și

Aspecte privind realizarea unei evidențe electronice a cărților dintr-o bibliotecă

INTRODUCERE Activitatea umană desfăşurată în indiferent care domeniu presupune folosirea unei cantităţi mai mici sau mai mari de informaţie....

Baze de date - gestionarea cărților într-o bibliotecă

1 Introducere Trebuie menţionat faptul că lucrarea de faţă îşi propune înainte de toate să identifice cele mai importante aspecte şi probleme ale...

Medii de programare vizuală (JAVA) - evidența autovehiculelor înmatriculate

1. Enuntul temei: Sa se realizeze un proiect pentru evidenta autovehiculelor inmatriculate in circulatie. Pentru fiecare autoturism se considera...

Sistem Informatic de Evaluare a Cunoștințelor pentru Admitere la Studii Superioare de Masterat

INTRODUCERE Problema evaluării educaționale este una dintre cele mai actuale și controversate probleme. Nu există sistem educațional sau act...

Crearea unui website cu aplicații numerice utilizând platforma Java 2015

I. Introducere În zilele noastre, tehnologia s-a dezvoltat foarte mult odată cu dezvoltarea de aplicații în domeniile industriale și mai ales...

Structuri de Date în Limbajul Java

Motivaţia lucrării Structurile de date reprezintă modalitatea în care datele sunt dispuse în memoria calculatorului(sau păstrate pe disc)....

Gestionarea activității universitare

Clasa Curs Clasa defineste un obiect de tip curs universitar. Clasa contine campurile: denumire (String) – numele cursului; sala (String) –...

Fire de Execuție Java

INTRODUCERE Java este un limbaj de programare orientat-obiect, puternic tipizat, conceput de către James Gosling la Sun Microsystems (acum filială...

Te-ar putea interesa și

Proiectarea unei Aplicații Web pentru o Companie de Leasing

I. Analiza managementului de leasing I.1. Introducere I.1.1.Definiţie Cuvintul "Leasing" vine din limba engleză, de la substantivul "leasing"...

Tehnici Avansate de Conducere pentru un Sistem Energetic

1. Introducere În contextul situaþiei energetice mondiale, efortul cerut pentru reducerea consumurilor de energie în vederea conservãrii este, de...

Studiul privind analiza și simularea automobilelor hibride

Introducere Creşterea economică, caracteristică civilizaţiei industriale se bazează pe resurse neregenerabile (petrol, cărbuni, gaze naturale). În...

Optimizarea Prelucrărilor pe Mașini Unelte cu Comandă Numerică prin Utilizarea Tehnologiilor de Grup

Capitolul 1 TENDINŢE ŞI DEZVOLTĂRI ÎN CONDUCEREA AUTOMATĂ ŞI ADAPTIVĂ A MAŞINILOR UNELTE În timp s-au conturat mai multe direcţii importante în...

Sisteme Electronice pe Stadionul de Fotbal

Multimedia este un atribut, transformat rapid in substantiv datorita frecventei sale utilizari din ultimul timp. Multimedia (multi - mai multe;...

Gestiunea unui Hotel

I. FOX PRO - GENERALITATI Calculatoarele electronice au aparut din necesitatea stocarii si prelucrarii cât mai rapide a informatiilor. Pe masura...

Desulfurarea Gazului Rezultat în Urma Procesului de Ardere a Cărbunelui

1. Introducere La începutul dezvoltarii umanității capacitatea de regenerare a naturii era suficientă pentru a face fața expluatării la care era...

Analiza calității software urmărirea stocurilor într-o societate comercială

1. INTRODUCERE Aprecierea sistemelor de programe este de ordin calitativ (bun, satisfacator, foarte bun, nesatisfacator) şi de ordin cantitativ,...

Ai nevoie de altceva?