Lista Stiva Coada Alocare Statica PDF

Descărcați ca pdf sau txt
Descărcați ca pdf sau txt
Sunteți pe pagina 1din 29

Tipuri

structurate
de date
LISTE
STIVE
COZI

Sumar
1. Competene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Prezentare general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Structura de date de tip list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Structura de date de tip stiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Structura de date de tip coad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6. Aplicaii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7. Bibliografie i webografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1. Competene
Competene generale
identificarea datelor care intervin ntr-o problem i a relaiilor dintre
acestea
elaborarea algoritmilor de rezolvare a problemelor
aplicarea algoritmilor fundamentali n prelucrarea datelor
identificarea conexiunilor dintre informatic i societate
Competene specifice
evidenierea necesitii structurrii datelor
prelucrarea datelor structurate
alegerea structurii de date adecvat rezolvrii unei probleme
elaborarea unui algoritm de rezolvare a unei probleme din aria
currcicular a specialitii
alegerea unui algoritm eficient de rezolvare a unei probleme
identificarea aplicaiilor informaticii n viaa social
elaborarea i implementarea unor algoritmi de rezolvare a unor
probleme cotidiene
3

2. Prezentare general
O structur de date este o colecie de elemente asupra creia se pot efectua
anumite operaii.

Prezentare general
Clasificarea structurilor de date:
1. n funcie de tipul datelor memorate n cadrul structurii, structurile de date se
pot clasifica n:
structuri de date omogene toate datele componente sunt de acelai tip
(de exemplu tabloul);
structuri de date neomogene pot conine date de tipuri diferite (de
exemplu nregistrarea).

2. n funcie de modul de alocare a memoriei interne, structurile de date sunt


de dou tipuri:
structuri de date statice ocup o zon de memorie de dimensiune fix,
alocat pe ntreaga durat a execuiei blocului n care este declarat (de
exemplu tabloul, fiierul, lista, stiva, coada);
structuri de date dinamice ocup o zon de memorie de dimensiune
variabil, alocat pe parcursul execuiei programului, la cererea explicit a
programatorului (de exemplu lista, stiva, coada).

3. Structura de date de tip list


Lista este o structur de date de tip secvenial, constituit dintr-o
succesiune de elemente de acelai tip. Fiecare element din list are un
succesor (cu excepia ultimului element al listei) i un predecesor (cu
excepia primului element din list).
- utilizarea listelor se impune ori de cte ori este necesar organizarea ntro form secvenial a unui ansamblu de informaii;

Structura de date de tip list


Operaii elementare care se pot efectua asupra unei liste:
crearea unei liste vide;
inserarea unui element n list;
eliminarea unui element din list;
accesarea unui element din list;
afiarea elementelor unei liste.
Exemplu
14, 2, 6, 77
LISTA

14

77

Structura de date de tip list


Reprezentarea listelor
Cel mai siplu mod de a implementa o list const n memorarea
elementelor sale ntr-un vector.

Declararea listei:
<tip> <identificator>[<nr_elemente>];

Exemplu
int LISTA[11];

Structura de date de tip list


1. Crearea unei liste vide
- se iniializeaz numrul de elemente din list cu 0;
Exemplu
int n=0;

Structura de date de tip list


2. Inserarea unui element n list
- se deplaseaz cu o poziie la dreapta toate elementele din list;
- se insereaz elementul;
- crete cu o unitate numrul de elemente ale listei;
Exemplu
for(i=n;i>=poz;i--)
LISTA[i+1]=LISTA[i];
LISTA[poz]=e;
n++;

Exerciiu
- inserarea unui element la nceputul listei;
- inserarea unui element la sfritul listei.

10

Structura de date de tip list


3. Eliminarea unui element din list
- se deplaseaz cu o poziie la stnga toate elementele din list, ncepnd
cu poziia elementului care se elimin;
- scade cu o unitate numrul de elemente ale listei;
Exemplu
e=LISTA[poz];
for(i=poz;i<n;i++)
LISTA[i]=LISTA[i+1];
n--;

Exerciiu
- tergerea primului element din list;
- tergerea ultimului element din list.

11

Structura de date de tip list


4. Accesarea unui element din list
- se memoreaz un element al listei ntr-o variabil;
Exemplu
e=LISTA[poz];

12

Structura de date de tip list


5. Afiarea elementelor din list
- se parcurge lista element cu element;
Exemplu
for(i=1;i<=n;i++)
cout<<LISTA[i]<<' ';

13

4. Structura de date de tip stiv


Stiva este un tip particular de list, pentru care att operaia de inserare
a unui element n structur, ct i operaia de extragere a unui element
se realizeaz la un singur capt, denumit vrful stivei.
- singurul element din stiv la care avem acces direct este cel de la vrful
stivei;
- trebuie cunoscut n permanen vrful stivei;
- stiva este utilizat atunci cnd programul trebuie s amne execuia unor
operaii, pentru a le executa ulterior, n ordinea invers apariiei lor;
- stiva funcioneaz dup principiul LIFO (Last In First Out);

14

Structura de date de tip stiv


Operaii elementare care se pot efectua asupra unei stive:
crearea unei stive vide;
nserarea unui element n stiv (PUSH);
extragerea unui element din stiv (POP);
accesarea elementului de la vrful stivei (TOP).

Exemplu
14, 2, 6, 77
PUSH

POP

77

vrful
stivei
(TOP)

6
2

STIVA

14

15

Structura de date de tip stiv


Reprezentarea stivelor
Cel mai siplu mod de a implementa o stiv const n memorarea
elementelor sale ntr-un vector.

Declararea stivei:
<tip> <identificator>[<nr_elemente>];

Exemplu
int STIVA[11];

16

Structura de date de tip stiv


1. Crearea unei stive vide
- se iniializeaz numrul de elemente din stiv cu 0;
Exemplu
int vrf=0;

17

Structura de date de tip stiv


2. Inserarea unui element n stiv
- se verific dac stiva nu este plin;
- se mrete vrful stivei;
- se plaseaz la vrf noul element;
Exemplu
if(varf==10)
cout<<Stiva este plin;
else
{
varf++;
STIVA[varf]=e;
}

18

Structura de date de tip stiv


3. Extragerea unui element din stiv
- se verific dac stiva nu este vid;
- se reine elementul din vrful stivei ntr-o variabil;
- se micoreaz cu o unitate vrful stivei;
Exemplu
if(varf==0)
cout<<Stiva este vid;
else
{
e=STIVA[varf];
varf--;
}

19

Structura de date de tip stiv


4. Accesarea elementului din vrful stivei
- se memoreaz elementul din vrful stivei ntr-o variabil;
Exemplu
e=STIVA[varf];

20

5. Structura de date de tip coad


Coada este un tip particular de list, pentru care operaia de inserare a
unui element se realizeaz la un capt, iar operaia de extragere a unui
element se realizeaz la cellalt capt.
- singurul element din coad la care avem acces direct este cel de la
nceput;
- trebuie cunoscut n permanen nceputul cozii i sfritul cozii;
- coada este utilizat atunci cnd informaiile trebuie prelucrate exact n
ordinea n care au sosit i ele sunt reinute n coad pn cnd pot fi
prelucrate;
- coada funcioneaz dup principiul FIFO (First In First Out);

21

Structura de date de tip coad


Operaii elementare care se pot efectua asupra unei cozi:
crearea unei cozi vide;
nserarea unui element n coad;
eliminarea unui element din coad;
accesarea unui element din coad.

Exemplu
14, 2, 6, 77

out

14

14

77

in

COADA

22

Structura de date de tip coad


Reprezentarea cozilor
Cel mai simplu mod de a implementa o coad const n memorarea
elementelor sale ntr-un vector.

Declararea cozii:
<tip> <identificator>[<nr_elemente>];

Exemplu
int COADA[11];

23

Structura de date de tip coad


1. Crearea unei cozi vide
- se iniializeaz numrul de elemente din coad cu 0, pentru aceasta se
iniializeaz variabilele nceput i sfrit;
Exemplu
int nceput=1, sfarsit=0;

24

Structura de date de tip coad


2. Inserarea unui element n coad
- se verific dac coada nu este plin;
- se mrete sfritul cozii cu o unitate;
- se plaseaz la sfrit noul element;
Exemplu
if(sfarsit==10)
cout<<Coada este plin;
else
{
sfarsit++;
COADA[sfarsit]=e;
}

25

Structura de date de tip coad


3. Eliminarea unui element din coad
- se verific dac coada nu este vid;
- se reine elementul de la nceputul cozii ntr-o variabil;
- se mrete cu o unitate nceputul cozii;
Exemplu
if(inceptu>sfarsit)
cout<<Coada este vid;
else
{
e=COADA[inceptu];
inceput++;
}

26

Structura de date de tip coad


4. Accesarea unui element din coad
- se memoreaz elementul de la nceputul cozii ntr-o variabil;
Exemplu
e=COADA[inceptu];

27

6. Aplicaii
Fi de lucru
ntrebri liste, stive, cozi
Aplicaii liste, stive, cozi

28

7. Bibliografie i webografie
1. Cerchez E., erban M., Informatic. Manual pentru clasa a X-a, Editura
Polirom, Iai, 2000
2. Mateescu G, Moraru P., Informatica. Manual pentru calsa a X, Editura
Donaris, Sibiu, 2006
3. Popescu C., Culegere de probleme de informatic, Editura DonarisInfo, Sibiu, 2002
4. Ministerul Educaiei, Cercetrii i Tineretului, Centrul Naional pentru
Curriculum i Evaluare n nvmntul Preuniversitar, Proba scris la
informatic. Examenul de bacalaureat Variante (1-100) , Bucureti
2008
5. http://ro.wikipedia.org/wiki/Lista_(structur%C4%83_de_date)
6. http://ro.wikipedia.org/wiki/Stiv%C4%83_(structur%C4%83_de_date)
7. http://en.wikipedia.org/wiki/Stack_(abstract_data_type)

29

S-ar putea să vă placă și