Подкорректировать код так, чтобы можно было работать с любым количеством очередей - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
 
#define FALSE 0
#define TRUE 1
 
typedef struct item
{
    int data;
    struct item *next;
}
Item;
 
void Add(void);
void DeleteAll(void);
void Del_Element(void);
void Display(void);
void Clear(void);
 
Item *head = NULL, *tail = NULL;
 
main()
{
    int done = FALSE;
    char c;
 
    while (!done) {
        printf("\n\nAdd.................(A)\nClear...............(C)\nDelete_Element......(D)\nDisplay.............(S)\nQuit................(Q)\n");
        c = getch();
        switch (toupper(c)) {
            case 'A':
                Add();
                break;
            case 'C':
                DeleteAll();
                break;
            case 'Q':
                done = TRUE;
                break;
            case 'D':
                 Del_Element();
                 break;
            case 'S' :
                 Display();
                 break;
        }
    }
    printf("\n");
    Clear();
    return 0;
}
 
void Add(void)
{
    Item* p;
    int dtt;
    p = (Item *)malloc(sizeof(Item));
    printf("vvedite data: ");
    scanf("%d", &dtt);
    p->data = dtt;
    p->next = NULL;
    if (head == NULL)
        head = p;
    else
        tail->next = p;
    tail = p;
}
 
void DeleteAll(void)
{
    Item* p = head;
 
    if (head != NULL) {
        head = head->next;
        if (head = NULL)
            tail = NULL;
        free(p);
    }
}

void Display(void)
{
    Item* p = head;
 
    if (p == NULL)
        printf("\nQueue is empty");
    else
        printf("\nQueue: ");
    while (p != NULL) {
        printf("\n%d", p->data);
        p = p->next;
    }
}
 
void Clear(void)
{
    Item *p = head;
 
    while (head != NULL) {
        head = head->next;
        free(p);
        p = head;
    }
 
}
 
void Del_Element(void)
{
Item* p = head;
if (head != NULL)
head=head->next;
}
помогите плз подкорректировать прогу и сделать так чтобы можно было работать с любым кол-вом очередей

Решение задачи: «Подкорректировать код так, чтобы можно было работать с любым количеством очередей»

textual
Листинг программы
struct _queue {
      Item * head;
      Item * tail;
} Queue;

Объяснение кода листинга программы

  1. Объявляется структура данных _queue состоящая из двух указателей на элементы типа Item: head и tail.
  2. Инициализируется переменная Queue типа _queue.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы