Alocarea dinamică noțiuni generale listă liniară dublu înlănțuită

Previzualizare referat:

Extras din referat:

Din punctul de vedere al unui programator, memoria calculatorului se prezinta ca o succesiune de octeti, fiecare octet avand o adresa binara bine stabilita. Acesti octeti sunt identificati prin numere cuprinse intre 0 si n-1. Convenim sa numim adresa numarul de ordine al unui octet. Un octet este format din 8 biti. Fiecare bit poate memora fie cifra binara 1, fie cifra binara 0. Diversele tipuri de date cunoscute pana acum (INTEGER, REAL) ocupa 2 sau mai multi octeti consecutivi. Pentru fiecare tip de data cunoscut exista o anumita logica potrivit careia se face memorarea efectiva a continutului. De exemplu, pentru tipul INTEGER, memorarea se face in COD COMPLEMENTAR. Nu ne propunem sa prezentam modul de reprezentare a datelor. Ne marginim numai sa atragem atentia ca o variabila folosita de noi in program are un anumit nume (simbolic), o valoare si o adresa la care o gasim memorata (adresa primului octet din cei p octeti consecutivi ocupati de variabila). In general, in limbajele evoluate nu este necesar ca programatorul sa cunoasca adresa la care se gasesc variabilele cu care lucreaza.

Se cunosc doua forme de alocare a memoriei de catre programator in cadrul limbajului PASCAL: statica si dinamica.

Utilizand forma de alocare statica, variabilele se declara utilizand cuvantul cheie VAR la inceputul programului.

Utilizand forma de alocare dinamica, in timpul rularii programului, in functie de necesitati, se aloca memorie suplimentara sau se renunta la ea.

adrurm: ref; end; var c: ref; Aici variabila c este o variabila de tip referinta. Ea retine adrese de inregistrari.

La randul ei, o inregistrare are doua campuri: nr, care retine un numar intreg (informatia utila) si adrurm (adresa urmatoare) care retine adresa unei alte inregistrari.

Procedura NEW (c) rezerva spatiu (un numar de octeti consecutivi) pentru o inregistrare, adresa primului octet fiind depusa in variabila c.

Presupunem ca variabila c contine adresa unei inregistrari.

Procedura DISPOSE (c) elibereaza spatiul de memorie afectat acelei inregistrari care avea adresa in c.

Cuvantul cheie NIL are semnificatia nici o adresa. Observatii: 1) c se refera la adresa care se gaseste in variabila c; 2) c^. nr se refera la campul numeric al inregistrarii care are adresa memorata in variabila c; 3) c^. adrurm semnifica adresa de inregistrare care se gaseste memorata in cadrul inregistrarii care are adresa c; 4) c^. adrurm^. nr semnifica variabila nr care se gaseste in inregistrarea care are adresa plasata in campul adrurm al inregistrarii cu adresa c.

Observatie foarte importanta: spatiul necesar variabilelor alocate dinamic se rezerva intr-o zona de memori, special destinata, numita HEAP (pentru PC compatibila IBM) 4. 2) Lista liniara dublu inlantuita O lista dublu inlantuita este o structura de date de forma: Operatiile pe care le facem cu o lista dublu inlantuita sunt urmatoarele: creare adaugare la dreapata adaugare la stanga adaugare in interiorul listei stergere din ...

Descarcă referat

Pentru a descărca acest document,
trebuie să te autentifici in contul tău.

Structură de fișiere:
  • Alocarea Dinamica Notiuni Generale Lista Liniara Dublu Inlantuita
    • Referat.doc
Alte informații:
Tipuri fișiere:
doc
Diacritice:
Nu
Nota:
7/10 (2 voturi)
Anul redactarii:
2007
Nr fișiere:
1 fisier
Pagini (total):
6 pagini
Imagini extrase:
6 imagini
Nr cuvinte:
1 089 cuvinte
Nr caractere:
6 142 caractere
Marime:
8.16KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Gimnaziu
Tip document:
Referat
Materie:
Informatică
Predat:
la gimnaziu
Sus!