Beispiel #1
0
int main() {
  Deque<int> deque;
  deque.PushBack(1);
  cout << deque.ToString() << endl;
   deque.PushBack(3);
  cout << deque.ToString() << endl;
  deque.PushFront(2);
  cout << deque.ToString() << endl;
  deque.PopBack();
  cout << deque.ToString() << endl;
  deque.PopFront();
  cout << deque.ToString() << endl;
  deque.PopFront();
  cout << deque.ToString() << endl;  
}
Beispiel #2
0
    bool TestDeque2()
    {
        Deque d;
        d.PushBack(-1);
        d.PushBack(0);
        d.PushBack(1);
        d.PushBack(2);
        d.PushBack(3);
        d.PushBack(4);
        d.PushBack(5);
        d.PushBack(6);
        d.PushBack(7);
        d.PushBack(8);
        d.PushBack(9);
        d.PopFront();

        int result[10] = {0};
        int* i = Transform(d.Begin(), d.End(), Square, result);
        if(i != result + 10)
            return false;

        if(!CheckResult(result))
            return false;

        return true;
    }
Beispiel #3
0
Dynamic __hxcpp_deque_pop(Dynamic q,bool block)
{
	Deque *d = dynamic_cast<Deque *>(q.mPtr);
	if (!d)
		throw HX_INVALID_OBJECT;
	return d->PopFront(block);
}
Beispiel #4
0
void main()
{
	Deque* deque = new Deque;

	for (int i = 0; i < 10; i++)
		deque->PushBack(i);
	
	while (true)
	{
		try {
			cout << deque->PopBack() << " ";
		}
		catch (const char* err_text)
		{
			cout << err_text << endl;
			break;
		}
	}

	cout << "------------------" << endl;

	for (int i = 0; i < 10; i++)
		deque->PushFront(i);

	while (true)
	{
		try {
			cout << deque->PopFront() << " ";
		}
		catch (const char* err_text)
		{
			cout << err_text << endl;
			break;
		}
	}

	delete deque;
}
Beispiel #5
0
int main(int argc, char* argv[])
{
    char op, dir;           //op - операция (+/-), dir - направление (</>)
    size_t num;             //Число вагонов для операции (целое)

    if (argc!=3)             //Проверка на аргументы
    {
        printf("There is a wrong number of arguments!");
        return 1;
    }

    FILE* input=fopen(argv[1], "r");
    //Файлопроверка
    if (CheckFile(input)==false)
    {
        return 1;
    }

    FILE* output=fopen(argv[2], "w");
    //Файлопроверка
    if (CheckFile(output)==false)
    {
        fclose(input);
        return 1;
    }

    fscanf(input,"%u", &num);
    //Считывание первого числа вагонов

    Deque d;
    //Инициализация объекта d класса Deque
    //Конструктор инициализирует начальные данные нового объекта класса

    d.PushBack(num);
    //Заполнение массива вагонов первый раз

    d.PrintResult(output);
    //Вывод данных в консоль и файл

    while (fscanf(input, " %c%c%u", &op, &dir, &num)==3)
    {
        if (op=='+')
        //Ветка прицепления вагонов к составу
        {
            if(dir=='>')
            //Прицепить вагоны спереди
            {
                d.PushFront(num);
            }
            else if (dir=='<')
            //Прицепить вагоны сзади
            {
                d.PushBack(num);
            }
        }
        else if (op == '-')
        //Ветка отцепления вагонов от состава
        {
            if(dir == '<')
            //Удалить вагоны с конца
            {
                if (d.PopBack(num)==false)
                {
                    printf("Fatal operation:\nYou have negative number of wagons!");
                    return 1;
                }
            }
            else if (dir == '>')
            //Удалить вагоны с начала
            {
                if (d.PopFront(num)==false)
                {
                    printf("Fatal operation:\nYou have negative number of wagons!");
                    return 1;
                }
            }
        }
        d.PrintResult(output);
        //Вывод в файловый поток output и в консоль
    }
    fclose(input);
    fclose(output);
    return 0;
    //Программа вызывает деструктор
}