This is an old revision of the document!


Laboratorul 3: Stive si Cozi

1. Obiectivele laboratorului

  • Înțelegerea conceptului de funcționare si implementarea de stive și cozi.
  • Implementarea unor funcții individuale de lucru cu acestea.

2. Ce este o stiva?

A. Definitie

O stivă reprezintă o listă cu structuri de date de tipul: Last-In-First-Out (LIFO). Un exemplu comun ar fi un teanc de cărți: tot punem cărți pe o masă, dar în momentul când vrem să le ridicăm începem cu ultima, pusă deasupra teancului.

B. Operatii cu stive

Definim structura astfel:

struct stack{
     int s[size];
     int top = -1;
} st;

Verificăm dacă stiva e plină sau goală:

int st_full(){ //int st_empty{
     if(st.top>=size - 1)  //if(st.top==-1)
          return 1;
     else
          return 0;
}

Adăugarea:

void push(int item){
     st.top++;
     st.s[st.top]=item;
}

Ștergerea:

int pop(){
     int item;
     if(st_empty())  //presupunem ca nu exista elemente
        return -1; //cu valoarea -1
     item = st.s[st.top];
     st.top--;
     return (item);
}

*Observații:*

  • Când introducem elemente într-o stivă,trebuie să incrementăm top-ul și apoi să adăugam elementul.
  • Când ștergem un element,trebuie întâi să ștergem elementul și apoi să decrementăm top-ul.
  • O stivă poate fi implementată cu ajutorul unui vector sau cu liste înlănțuite.
sda-aa/laboratoare/04.1616245850.txt.gz · Last modified: 2021/03/20 15:10 by cristian.rusu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0