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)
Publicat de: Ada Ispas
Cost: Gratis
Algoritmi si Tehnici de Programare Avansata: Tablouri, liste, cozi, algoritmi, arbori, sortari

Extras din curs

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

Auditul unui Sistem Informatic

1. Aspecte teoretice privind auditul sistemelor informatice Prin audit , în general , se înțelege examinarea profesională a unei informații în...

Implementarea aplicațiilor software pe platforma Android

SCOP: - Deprinderea capacitatii de a programa aplicatii, jocuri pentru sistemul de operare Android - Aplicabilitate: Traducerea (portarea)...

Analiza Algoritmilor Genetici

I. Analiza algoritmilor genetici 1.1. Algoritmi evoluţionişti Algoritmii evoluţionişti au la bază câteva principii ale evoluţiei: supravieţuirea...

Modele teste licență programarea sistemelor informatice

1. Care definiţie este corectă: a) Un sistem reprezintă un ansamblu de elemente (componente) interdependente, între care se stabileşte o...

Conceptele Fundamentale ale Limbajelor de Programare

INTRODUCERE Obiectul disciplinei: limbajele de programare Obiective: · Studiul conceptelor fundamentale care stau la baza proiectării...

Utilizarea și Programarea Calculatoarelor

Introducere în programarea calculatoarelor - Circuitele electronice ale calculatoarelor sunt capabile sa efectueze un numar limitat de operaCii...

Inițiere în Limbajul de Programare Delphi

1.1 INTRODUCERE „Clasele şi obiectele sunt noţiuni strâns legate una de alta. În particular fiecare obiect este un exemplu a unei careva clase,...

Programare pe componente

Obiectul cursului " Cerinte " Bibliografie MODULE 1. Componentele Visual Sudio si .net2003; arhitectura three-tier 2. Dezvoltarea aplicatiilor...

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?