Урок 10. с++. Стеки в с++. Программирование стеков.

Автор: | 18.11.2018

Видео к уроку.

Код к уроку.

Стек  FIFO

// ConsoleApplication3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
//пример реализации стека FIFO

int pop(int *product, int &pos)//извлекать товары
{
  if (pos == 0)
  {
    cout << "stack empty";
    return -1;
  }
  pos--;
  int ret=product[0];
  for (int i = 1; i <= pos; i++)
  {
    product[i - 1] = product[i];
  }
  return ret;
}
void push(int item, int *product, int &pos)//помещаем в массив
{
  if (pos == 99)
  {
    cout << "stack overflow";
    return;
  }
  product[pos] = item;
  pos++;
}
int main()
{
  int pos = 0;
  int product[100];
  push(10, product, pos);
  push(11, product, pos);
  push(12, product, pos);
  cout << pop(product, pos) << "\n";
  cout << pop(product, pos) << "\n";
  cout << pop(product, pos) << "\n";
  int a;
  cin >> a;
  return 0;
}

Стек LIFO

// ConsoleApplication3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
//пример реализации стека LIFO

int pop(int *product, int &pos)//извлекать товары
{
  if (pos ==0)
  {
    cout << "stack empty";
    return -1;
  }
  pos--;
  product[pos];
  
  return product[pos];
}
void push(int item, int *product, int &pos)//помещаем в массив
{
  if (pos == 99)
  {
    cout << "stack overflow";
    return;
  }
  product[pos] = item;
  pos++;
}
int main()
{
  int pos = 0;
  int product[100];
  push(10, product, pos);
  push(11, product, pos);
  push(12, product, pos);
  cout << pop(product, pos)<<"\n";
  cout << pop(product, pos) << "\n";
  cout << pop(product, pos) << "\n";
  int a;
  cin >> a;
  return 0;
}

 

Раздел: C++