C++

Создание и работа с двунаправленной очередью созданной на основе массива

// 7_16С(1).cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include<windows.h>
const int MAX = 11;
int arr[MAX];
int start,finish;

int add_begin(int c){// добавить элемент в начало
	if (start>0){
		start--;
		arr[start] = c;
		return 0;
	}
	else
		return -1;
}
int add_end(int c){//добавить элeмент в конец
	if (finish<MAX){
		arr[finish] = c;
		finish++;
		return 0;
	}
	else
		return -1;
}
void write(){//вывод
	for (int i = 0;i<MAX;i++)
		printf("%i ",arr[i]);
	printf("\n");
	_getch();
}
int read(){//чтение с консоли
	int c;
	printf("Введите значение элемента: ");
	scanf_s("%i",&c);
	return c;
}
void delete_begin(){//удаление из начала
	arr[start] = 0;
	start++;
}
void delete_end(){//удаление из конца
	finish--;
	arr[finish] = 0;
	
}
void main_menu(){//функция отображения главного меню
	int answer;
	system("cls");
	printf("1 - Добавить в начало\n");
	printf("2 - Добавить в конец\n");
	printf("3 - Удалить из начала\n");
	printf("4 - Удалить из конца\n");
	printf("5 - Вывести дек на консоль\n");
	printf("0 - Закрыть программу\n");
	printf("Введите номер выбранного пункта меню: ");
	scanf_s("%i",&answer);
	switch(answer){
	case 1: {int c = read(); add_begin(c);main_menu();break;}
	case 2: {int c = read(); add_end(c);main_menu();break;}
	case 3: {delete_begin();main_menu();break;}
	case 4: {delete_end();main_menu();break;}
	case 5: {write();main_menu();break;}
	case 0: {return;}
	}
}

int _tmain(int argc, _TCHAR* argv[])
{
	start = MAX/2;
	finish = start;
	setlocale(LC_ALL,"Russian");
	main_menu();
	return 0;
}
Теги:
дек, массив
Добавлено: 29 Декабря 2013 09:23:36 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...