Using c++ Create a queue using a linked list as your container and use a class. The system must have enqueue and dequeue operations and functions such as, isfull() and isempty(). Make sure it has an input and 10 data will be accepted. Can anyone show me the correct way i tried some like this ------------------------------------------------------------------------------------- #include #include #include #define CAPACITY 100      typedef struct node  {     int data;     struct node * next; } Queue;     unsigned int size = 0; int enqueue(Queue ** rear, Queue ** front, int data); int dequeue(Queue ** front); int getRear(Queue * rear); int getFront(Queue * front); int isEmpty(); int isFull(); int main() {     int ch, data;     Queue *rear, *front;     rear  = NULL;     front = NULL;          while (1)     {                printf("--------------------------------------------\n");         printf("  QUEUE LINKED LIST IMPLEMENTATION PROGRAM  \n");         printf("--------------------------------------------\n");         printf("1. Enqueue\n");         printf("2. Dequeue\n");         printf("3. Size\n");         printf("4. Get Rear\n");         printf("5. Get Front\n");         printf("0. Exit\n");         printf("--------------------------------------------\n");         printf("Select an option: ");         scanf("%d", &ch);                           switch (ch)         {             case 1:                 printf("\nEnter data to enqueue: ");                 scanf("%d", &data);                                  if (enqueue(&rear, &front, data))                     printf("Element added to queue.");                 else                     printf("Queue is full.");                 break;             case 2:                 data = dequeue(&front);                                 if (data == INT_MIN)                     printf("Queue is empty.");                 else                     printf("Data => %d", data);                 break;             case 3:                                   if (isEmpty())                     printf("Queue is empty.");                 else                      printf("Queue size => %d", size);                 break;             case 4:                  data = getRear(rear);                 if (data == INT_MIN)                     printf("Queue is empty.");                 else                      printf("Rear => %d", data);                 break;             case 5:                  data = getFront(front);                 if (data == INT_MIN)                     printf("Queue is empty.");                 else                      printf("Front => %d", data);                 break;             case 0:                 printf("Exiting from app.\n");                 exit(0);                      default:                 printf("Invalid choice, please input number between (0-5).");                 break;         }         printf("\n\n");     } }   int enqueue(Queue ** rear, Queue ** front, int data) {     Queue * newNode = NULL;          if (isFull())     {         return 0;     }          newNode = (Queue *) malloc (sizeof(Queue));         newNode->data = data;          newNode->next = NULL;           if ( (*rear) )     {         (*rear)->next = newNode;     }               *rear = newNode;          if ( !( *front) )     {         *front = *rear;     }          size++;     return 1; }   int dequeue(Queue ** front) {     Queue *toDequque = NULL;     int data = INT_MIN;          if (isEmpty())     {         return INT_MIN;     }          toDequque = *front;     data = toDequque->data;          *front = (*front)->next;         size--;         free(toDequque);     return data; }   int getRear(Queue * rear) {          return (isEmpty())             ? INT_MIN             : rear->data; }   int getFront(Queue * front) {          return (isEmpty())             ? INT_MIN             : front->data; }   int isEmpty() {     return (size <= 0); }   int isFull() {     return (size > CAPACITY); }   My problem i need the correc

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Using c++ Create a queue using a linked list as your container and use a class. The system must have enqueue and dequeue operations and functions such as, isfull() and isempty(). Make sure it has an input and 10 data will be accepted.

Can anyone show me the correct way i tried some like this

-------------------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>


#define CAPACITY 100   

 

typedef struct node 
{
    int data;
    struct node * next;
} Queue;    


unsigned int size = 0;


int enqueue(Queue ** rear, Queue ** front, int data);
int dequeue(Queue ** front);
int getRear(Queue * rear);
int getFront(Queue * front);
int isEmpty();
int isFull();


int main()
{
    int ch, data;
    Queue *rear, *front;

    rear  = NULL;
    front = NULL;

    
    while (1)
    {
      
        printf("--------------------------------------------\n");
        printf("  QUEUE LINKED LIST IMPLEMENTATION PROGRAM  \n");
        printf("--------------------------------------------\n");
        printf("1. Enqueue\n");
        printf("2. Dequeue\n");
        printf("3. Size\n");
        printf("4. Get Rear\n");
        printf("5. Get Front\n");
        printf("0. Exit\n");
        printf("--------------------------------------------\n");
        printf("Select an option: ");

        scanf("%d", &ch);

        
        
        switch (ch)
        {
            case 1:
                printf("\nEnter data to enqueue: ");
                scanf("%d", &data);

                
                if (enqueue(&rear, &front, data))
                    printf("Element added to queue.");
                else
                    printf("Queue is full.");

                break;

            case 2:
                data = dequeue(&front);

               
                if (data == INT_MIN)
                    printf("Queue is empty.");
                else
                    printf("Data => %d", data);

                break;

            case 3: 

                
                if (isEmpty())
                    printf("Queue is empty.");
                else 
                    printf("Queue size => %d", size);

                break;

            case 4: 
                data = getRear(rear);

                if (data == INT_MIN)
                    printf("Queue is empty.");
                else 
                    printf("Rear => %d", data);

                break;

            case 5: 

                data = getFront(front);

                if (data == INT_MIN)
                    printf("Queue is empty.");
                else 
                    printf("Front => %d", data);

                break;

            case 0:
                printf("Exiting from app.\n");
                exit(0);
        
            default:
                printf("Invalid choice, please input number between (0-5).");
                break;
        }

        printf("\n\n");
    }
}

 


int enqueue(Queue ** rear, Queue ** front, int data)
{
    Queue * newNode = NULL;

    
    if (isFull())
    {
        return 0;
    }

    
    newNode = (Queue *) malloc (sizeof(Queue));

   
    newNode->data = data;

    
    newNode->next = NULL;

     
    if ( (*rear) )
    {
        (*rear)->next = newNode;
    }
    

    
    *rear = newNode;

    
    if ( !( *front) )
    {
        *front = *rear;
    }

    
    size++;

    return 1;
}

 

int dequeue(Queue ** front)
{
    Queue *toDequque = NULL;
    int data = INT_MIN;

    
    if (isEmpty())
    {
        return INT_MIN;
    }

    
    toDequque = *front;
    data = toDequque->data;

    
    *front = (*front)->next;

   
    size--;

   
    free(toDequque);

    return data;
}

 

int getRear(Queue * rear)
{
    
    return (isEmpty())
            ? INT_MIN
            : rear->data;
}

 

int getFront(Queue * front)
{
    
    return (isEmpty())
            ? INT_MIN
            : front->data;
}

 

int isEmpty()
{
    return (size <= 0);
}

 

int isFull()
{
    return (size > CAPACITY);
}

 

My problem i need the correct way i need help

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY