Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Copyright vlladislav45
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- struct elem {
- int data;
- elem *next;
- }*head=NULL , *tail=NULL, *pointer;
- //declare variable
- int br = -1;
- void push_l(int number)
- {
- pointer = head;
- head = new elem;
- head->data = number;
- head->next = pointer;
- if (tail == NULL)
- head = tail;
- }
- void push_r(int number)
- {
- pointer = tail;
- tail = new elem;
- tail->data = number;
- tail->next = NULL;
- if (head == NULL)
- head = tail;
- else
- pointer->next = tail;
- }
- int pop_l(int &number)
- {
- if (head)
- {
- pointer = head;
- number = head->data;
- head = head->next;
- if (head == NULL)
- tail = head;
- delete pointer;
- return 1;
- }
- else
- return 0;
- }
- int pop_r(int &number)
- {
- if (tail)
- {
- number = tail->data;
- if (head == tail)
- {
- delete tail;
- head = tail = NULL;
- }
- pointer = head;
- while (pointer->next != tail)
- pointer = pointer->next;
- pointer->next = NULL;
- delete tail;
- tail = pointer;
- return 0;
- }
- else
- return 0;
- }
- void findElementInDeque(int searchNumber)
- {
- //Декларирам променливи
- int number;
- bool isPresent = false;
- //Цикъл от 0 до броячът
- for (int i = 0; i < br; i++)
- {
- //извеждаме числата от дясно едно по едно
- pop_r(number);
- // ако числото което търсим съвпадне с едно от числата които сме проверили
- if (searchNumber == number)
- //тази променлива става труе
- isPresent = true;
- //връщаме обратното числото което извели от редицата
- push_l(number);
- }
- //Ако числото което търсим не съвпадне с някое от редицата
- if (!isPresent)
- //го добавяме най - отляво
- push_l(searchNumber);
- }
- int main() {
- int number;
- //Цикъл докато не въведем 0
- do {
- cout << "Enter name of the document P.P 0 for break \n";
- cin >> number;
- if(number != 0)
- //добавяме числата в дясно
- push_r(number);
- //броячът ни се увеличава с 1 винаги когато влезе в цикъла
- br++;
- } while (number != 0);
- //Търсим число
- cout << "\n Search ";
- int search;
- cin >> search;
- //викаме функцията
- findElementInDeque(search);
- //извеждаме дека
- cout << "List: \t";
- while (pop_l(number))
- cout << number << "\t";
- cout << endl;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement