Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication8.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- using namespace std;
- struct Node {
- int data;
- Node *next;
- };
- struct Queue{
- int size;
- Node* first;
- Node* last;
- };
- void Creation(Queue*Q) {
- Q->first = new Node; // выдялем память под новый элемент:
- Q->first->next = NULL;
- Q->last = Q->first;
- Q->size = 0;
- }
- int Size(Queue *Q) //размер очереди
- {
- return Q->size;
- }
- void Clear(Queue* Q) { // очистка
- Q->size--;
- }
- void exit(Queue* Q) {
- cout << "bye";
- }
- void Add(Queue*Q) {
- int value;
- cin >> value;
- Q->last->next = new Node;
- Q->last = Q->last->next;
- Q->last->data = value;
- Q->last->next = NULL; // обнуление указателя на след.элемент
- Q->size++;
- }
- void top(Queue *Q,int k) { //функция вывода всех элементов , с учетом удаления элемента.
- if (Q->first->next->data == k) { // проверка если значение списка равно k , то меняем это значение на следующее по списку
- Q->first = Q->first->next; //смещение указателя
- }
- else { // если же это другое значение , то
- cout << Q->first->next->data; // просто выводим первый элемент
- cout << " ";
- Q->first = Q->first->next; //смещаем указать
- Q->size--;
- }
- }
- void delete_first(Queue*Q) { // удаление первого
- cout << Q->first->next->data; // просто выводим первый элемент
- Q->first = Q->first->next; //смещаем указать
- Q->size--;
- }
- bool Full(Queue*Q) {
- if (Q->first == Q->last) return true;
- else return false;
- }
- int front(Queue*Q) {
- return Q->first->next->data;
- }
- int main() {
- //freopen("input.txt", "r", stdin);
- //freopen("output.txt", "w", stdout);
- Queue Q;
- Creation(&Q);
- string valuable;
- while (valuable != "exit"){
- cin >> valuable;
- if (valuable == "push") {
- Add(&Q);
- cout <<"ok";
- }
- else if (valuable == "pop") {
- delete_first(&Q);
- }
- else if (valuable == "front") {
- cout << front(&Q);
- }
- else if (valuable == "size") {
- cout << Size(&Q);
- }
- else if (valuable == "clear") {
- Clear(&Q);
- }
- else if (valuable == "exit") {
- exit(&Q);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment