Решение задачи Дек с защитой от ошибок с Mccme

Без пояснения   Просмотров: 623


Реализуйте структуру данных "дек". Напишите программу, содержащую описание дека и моделирующую работу дека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

push_front
Добавить (положить) в начало дека новый элемент. Программа должна вывести ok.

.....

Код

#include <cstdio>

#include <cstring>

#include <deque>

using namespace std;

 

deque <int> d;

int n;

char s[100];

 

int main(void)

{

  while(scanf("%s",&s))

  {

    if(strcmp(s,"push_front") == 0)

    {

      scanf("%d",&n);

      d.push_front(n);

      puts("ok");

    }

    else

    if(strcmp(s,"push_back") == 0)

    {

      scanf("%d",&n);

      d.push_back(n);

      puts("ok");

    }

    else

    if(strcmp(s,"pop_front") == 0 && !d.empty())

    {

      printf("%d\n",d.front());

      d.pop_front();

    }

    else

    if(strcmp(s,"pop_back") == 0 && !d.empty())

    {

      printf("%d\n",d.back());

      d.pop_back();

    }

    else

    if(strcmp(s,"front") == 0 && !d.empty())

    {

      printf("%d\n",d.front());

    }

    else

    if(strcmp(s,"back") == 0 && !d.empty())

    {

      printf("%d\n",d.back());

    }

    else

    if(strcmp(s,"size") == 0)

    {

      printf("%d\n",d.size());

    }

    else

    if(strcmp(s,"clear") == 0)

    {

      while(!d.empty()) d.pop_back();

      puts("ok");

    }

    else

    if(strcmp(s,"exit") == 0)

    {

      puts("bye");

      break;

    }

    else puts("error");

  }

  return 0;

}

         

Администратор Photo Автор: Администратор




Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться