Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Structuri de date dinamice

c


Structuri de date dinamice

Pentru a implementa structura liniara (lista simplu inlantuita) si structura de tip arbore binar vom apela la structuri definite recursiv.



Lista simplu inlantuita ordonata

Consideram o lista nevida fiind formata din primul element si sublista aflata la adresa de legatura memorata in fiecare element pe langa informatia propriuzsa

In exemplul urmator vom crea o lista care va contine monoamele unui polinom in ordinea descrescatoare a gradelor. Un element din lista va contine pe langa informatia propriuzisa (coeficientul si gradul monomului) si adresa urmatorului monom (adresa sublistei). De exemplu, pentru polinomul P(x)=120x12+77x7+130x3+22x2 lista va contine patru elemente avand informatiile (20,12); (77,7); (130,3); (22,2), indiferent de ordinea introducerii monoamelor. Deoarece coeficientii sunt nenuli, introducerea datelor se termina la primul coeficient nul.

#include <stdio.h>

#include <alloc.h>

#include <iostream.h>

#define Nil (NULL)

struct Monom ;

struct Elem ;

typedef Elem* Polinom; // Lista de monoame ordonate decrescator dupa grad

int Citit(Monom &M)

void Ado(Polinom &P, Monom M)

else Ado(P->Leg,M);

void Cre(Polinom &P)

void Tip(Polinom P)

void main (void)

Date : P (Coef,Grad) : 120 12 22 2 77 7 130 3 0 ¿

Rezultate : Polinomul P(X)=120X^12+77X^7+130X^3+22X^2

Exemplu:

Lista simpla ordonata crescator

#include <iostream.h>    #include 'Crt.Cpp'

typedef int Info;

struct Elem;

typedef Elem* Lista;

struct Elem ;

int Citit(Info& inf)

void Ado(Lista& L, Info inf)

//sau

else ; Lista Nou = new Elem (el); L=Nou;}

void Cre(Lista& L)

void Tip(Lista L)

cout << 'b.'; }

void main (void)

Abori binari

Consideram ca un arbore binar nevid este format din radacina, subarbore stang si subarbore drept.

Exemplu:

// Arbore ordonat, traversat in inordine

#include <iostream.h>     #include 'Crt.Cpp'

typedef int Info;

struct Nod; typedef Nod* Arb; struct Nod ;

int Citit(Info& inf)

void Ado(Arb& A, Info inf)

void Ado(Arb& A, Info inf)

//sau

else ; A=new Nod (n); }

void Cre(Arb& A)

void Ino(Arb A)

void main (void)

In exemplul urmator se citeste un arbore genealogic ascendent (dand pentru fiecare persoana nume parintilor), apoi se va reprezenta grafic arborele construit intr-o fereastra ecran precizata (u1,v1,u2,v2). Distanta dintre doua nivele se calculeaza tinand cont de adancimea arborelui.

#include <stdio.h>

#include <alloc.h>

#include <string.h>

#include <iostream.h>

#include <graphics.h>

#include <conio.h>

typedef char TInf [13] ;

struct Nod ;

typedef Nod* Arb;

int Citit(TInf &Inf)

void Gen(Arb &A)

else A=NULL;

void Repr_Grafic(Arb A, int u1, int v1, int u2, int v2, int p)

// Dr

int Max (int a, int b)

int Adi(Arb A)

void main (void)



Document Info


Accesari: 986
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )