Реализация на стек чрез масив

По-долу е примерния код за една най-проста реализация на стек чрез масив:

Публикувано в 12в с етикети . Постоянна връзка.

One Response to Реализация на стек чрез масив

  1. Данаил каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    // максимален брой елементи в стека
    const int N=50;
     
    // указател към върха на стека
    int br = 0;
     
    // масив за съхранение на елементите на стека
    int s[N];
     
    // инициализиране на стека
    void init()
    {
        br=0;
    }
     
    // проверка дали стека е празен
    bool isEmpty() {
        return br==0;
    }
     
    // проверка дали стека е пълен
    bool isFull() {
        return br==N;
    }
     
    // запис на стойността X в стека
    bool push(int X)
    {
        bool ok = !isFull();
        if (ok){
            s[br] = X;
            br++;
        }
        return ok;
    }
     
    // извличане на стойност от стека
    bool pop(int &X)
    {
        bool ok = !isEmpty();
        if (ok) {
            br--;
            X = s[br];
        }
        return ok;
    }
     
    // печат на стека
    void print() {
        cout<<"top: |"<<br<<"|  stack: |";
        for(int i=0;i<br;i++) cout<<s[i]<<',';
        cout<<"| :-)"<<endl;
    }
     
    // демонстрация на стек
    int main(int argc, char** argv) {
    	// инициализиране
        init();
        print();
        // добавяне на елементи
        push(20);
        push(15);
        push(-3);
        print();
        // извличане на елемент
        int x;
    	pop(x);
    	print();
    	
    	return 0;
    }

Вашият коментар