Advertisement
broadbringer

Удаление Nого значения списка

Dec 17th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. // ConsoleApplication8.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. using namespace std;
  7. struct Node {
  8.     int data;
  9.     Node *next;
  10. };
  11. struct Queue{
  12.     int size;
  13.     Node* first;
  14.     Node* last;
  15. };
  16. void Creation(Queue*Q) {
  17.     Q->first = new Node; // выдялем память под новый элемент:
  18.     Q->first->next = NULL;
  19.     Q->last = Q->first;
  20.     Q->size = 0;
  21. }
  22. void Add(Queue*Q) {
  23.     int value;
  24.     cin >> value;
  25.     Q->last->next = new Node;
  26.     Q->last = Q->last->next;
  27.     Q->last->data = value;
  28.     Q->last->next = NULL; // обнуление указателя на след.элемент
  29.     Q->size++;
  30. }
  31. void top(Queue *Q,int k) { //функция вывода всех элементов , с учетом удаления элемента.
  32.     if (Q->first->next->data == k) { // проверка если значение списка равно k , то меняем это значение на следующее по списку
  33.         Q->first = Q->first->next; //смещение указателя
  34.     }
  35.     else { // если же это другое значение , то
  36.         cout << Q->first->next->data; // просто выводим первый элемент
  37.         cout << " ";
  38.         Q->first = Q->first->next; //смещаем указать
  39.         Q->size--; // уменьшаем размер на 1
  40.     }
  41. }
  42. bool Full(Queue*Q) {
  43.     if (Q->first == Q->last) return true;
  44.     else return false;
  45. }
  46. int main() {
  47.     //freopen("input.txt", "r", stdin);
  48.     //freopen("output.txt", "w", stdout);
  49.     Queue Q;
  50.     Creation(&Q);
  51.     int valuable;
  52.     cin >> valuable;
  53.     for (int i = 0; i < valuable; i++) {
  54.         Add(&Q);
  55.     }
  56.     int k;
  57.     cin >> k;
  58.  
  59.     for (int i = 0; i < valuable; i++) {
  60.         top(&Q,k);
  61.     }
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement