Advertisement
Guest User

йоу-йоу

a guest
May 5th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include<iostream>
  3. using namespace std;
  4. struct item
  5. { int data;
  6. item *next;
  7. };
  8. item *head, *tail;
  9. bool isnull(void)
  10. { return (head == NULL);
  11. }
  12. void delete()
  13. { if(isnull())
  14. cout<<"Пустота"<<endl;
  15. else
  16. { item *p = head;
  17. head = head -> next;
  18. delete p;
  19. }
  20. }
  21. void add(int x)
  22. { item *p = new item;
  23. p -> data = x; p -> next = NULL;
  24. item *v = new item;
  25. item *p1 = new item;
  26. item *p2 = new item;
  27. int i = 0;
  28. if (isnull()) head = tail = p;
  29. else
  30. { p2 = head; p1 = head;
  31. while(p1 != NULL)
  32. { if (i == 1)
  33. { if(x <= p1 -> data )
  34. { v -> data = x; v -> next = p1;
  35. p2 -> next = v;
  36. return;
  37. }
  38. p2 = p2 -> next; }
  39. else
  40. { if(x <= p1 -> data )
  41. { v -> data = x; v -> next = p1;
  42. head = v;
  43. return;
  44. }
  45. }
  46. p1 = p1 -> next; i = 1;
  47. }
  48. if(p1 == NULL) { tail -> next = p; tail = p; }
  49. }
  50. }
  51.  
  52.  
  53. void out()
  54. { item *p = new item;
  55. cout <<endl;
  56. if(isnull())
  57. cout<<"Пустота"<<endl;
  58. else
  59. { cout<<"Очередь = ";
  60. p = head;
  61. int q=0;
  62. while(!isnull())
  63. {
  64. if (p != NULL)
  65. {cout << endl; cout<< q <<" элемент = "<<p->data<<";"; p = p -> next; q++; }
  66. }
  67. cout <<endl;
  68. cout <<endl;
  69. }
  70. }
  71. void delall() //Очистка очереди
  72. { while(!isnull())
  73. delete();
  74. }
  75. int main()
  76. { setlocale (LC_CTYPE, "Russian");
  77. int i = 1, num = 1, z;
  78. head = NULL;
  79. tail = NULL;
  80. while (num != 0)
  81. {cout<<" ------------------------------------"<<endl;
  82. cout<<"|--- 1 - добавить элемент -----------|"<<endl;
  83. cout<<"|--- 2 - извлечь элемент с начала ---|"<<endl;
  84. cout<<"|--- 3 - вывести элемент ------------|"<<endl;
  85. cout<<"|--- 4 - очистить очередь -----------|"<<endl;
  86. cout<<"|--- 0 - выход ----------------------|"<<endl;
  87. cout<<" ------------------------------------"<<endl;
  88. cout << endl;
  89. cout<<"Выберите действие ";
  90. cin>>num;
  91. switch(num)
  92. {
  93. case 1: cout<<"Введите элемент: ";
  94. cin>>z; add(z);
  95. break;
  96. case 2: delete(); break;
  97. case 3: out(); break;
  98. case 4: delall(); break;
  99. }
  100. }
  101. return 0;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement