Advertisement
Guest User

123

a guest
Jun 30th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.48 KB | None | 0 0
  1. #include <stdio.h>
  2. const int N=10;
  3.  
  4.  
  5. typedef struct Queue{
  6. int data[10]; //массив данных
  7. int first; //указатель на начало
  8. int last; //указатель на конец
  9. }Queue;
  10.  
  11. Queue Q; //сама очередь, как глобальная переменная
  12.  
  13. void Creation(Queue *Q) //создание очереди
  14. {
  15.     Q->first=Q->last=1;
  16. }
  17.  
  18.  
  19. void Add(Queue *Q) //добавление элемента
  20. {
  21. int value;
  22. printf("\nЗначение > ");
  23. scanf("%d",&value);
  24. if ((Q->last%(N-1))+1==Q->first)
  25. printf("\nОчередь заполнена\n\n");
  26. else
  27. {
  28. Q->data[Q->last]=value;
  29. Q->last=(Q->last%(N-1))+1;
  30. printf("Элемент добавлен в очередь\n\n");
  31. }
  32. }
  33. void Delete(Queue *Q) //удаление элемента
  34. {
  35. Q->first=(Q->first%(N-1))+1;
  36. printf("Элемент удален из очереди\n\n");
  37. }
  38.  
  39. int Top(Queue *Q) //вывод начального элемента
  40. {
  41.     return Q->data[Q->first];
  42. }
  43.  
  44. int Size(Queue *Q) //размер очереди
  45. {
  46. if (Q->first>Q->last) return (N-1)-(Q->first-Q->last);
  47. else return Q->last-Q->first;
  48. }
  49. int main(void) //главная функция
  50. {
  51.  
  52. Creation(&Q); // создание очереди
  53. int i;
  54. for(i=0;i<5;i++) { Add(&Q); printf("size - %d\n",Size(&Q));} //добавление 5-ти элементов в очередь
  55. for(i=0;i<2;i++)  { Delete(&Q); printf("top - %d\n",Top(&Q)); printf("size - %d\n",Size(&Q)); }
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement