Algoritmi si Tehnici de Programare Avansata

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 si Tehnici de Programare Avansata - Pagina 1
Algoritmi si Tehnici de Programare Avansata - Pagina 2
Algoritmi si Tehnici de Programare Avansata - Pagina 3
Algoritmi si Tehnici de Programare Avansata - Pagina 4
Algoritmi si Tehnici de Programare Avansata - Pagina 5
Algoritmi si Tehnici de Programare Avansata - Pagina 6
Algoritmi si Tehnici de Programare Avansata - Pagina 7
Algoritmi si Tehnici de Programare Avansata - Pagina 8
Algoritmi si Tehnici de Programare Avansata - Pagina 9
Algoritmi si Tehnici de Programare Avansata - Pagina 10
Algoritmi si Tehnici de Programare Avansata - Pagina 11
Algoritmi si Tehnici de Programare Avansata - Pagina 12
Algoritmi si Tehnici de Programare Avansata - Pagina 13
Algoritmi si Tehnici de Programare Avansata - Pagina 14
Algoritmi si Tehnici de Programare Avansata - Pagina 15
Algoritmi si Tehnici de Programare Avansata - Pagina 16

Conținut arhivă zip

  • Algoritmi si Tehnici de Programare Avansata.doc

Alții au mai descărcat și

Medii de Programare Vizuala (JAVA) - Evidenta Autovehiculelor Inmatriculate

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

Aspecte Privind Realizarea unei Evidente Electronice a Cartilor dintr-o Biblioteca

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 Cartilor intr-o Biblioteca

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

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...

Gestionarea Activitatii Universitare

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

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...

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)....

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ă...

Ai nevoie de altceva?