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
Puncte necesare: 0
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

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

Autocad pentru începători

C1.1.CONCEPTUL DE CAD TERMINOLOGIE - COMPUTER AIDED ENGINEERING -CAE-vizeazăetapeledecercetare,inovaresiconcepţie; - COMPUTER AIDED DRAWING/...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Limbaje de Asamblare

Introducere. Necesitatea programării în limbaje de asamblare Modalităţile de programare s-au schimbat imens de la inventarea calculatorului, în...

Rețele de Calculatoare

O reţea de calculatoare (computer network) este un ansamblu de calculatoare interconectate prin intermediul unui mediu de comunicaţie (cablu...

Administrare rețele de calculatoare

ELEMENTELE COMPONENTE ALE UNUI SISTEM DE CALCUL Monitorul Este o periferica de iesire/intrare si este caracterizat prin: - Diagonala ecranului...

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

Proiect Organe de Mașini

PREFAȚĂ Disciplina Organe de mașini este prima disciplină cu caracter aplicativ din programul de pregătire a studenților de la programele 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...

Ai nevoie de altceva?