Поэтому мне нужно реализовать (stati c реализация) некоторую операцию с очередями. Я написал функцию для каждой операции.
#include <iostream>
#include "header.h"
using namespace std;
void initQueue(Queue& Q)
{
Q.head = Q.tail = 0;
}
void put(Queue& Q, Atom a) //enqueue function
{
if (Q.tail >= DIMMAX)
{
cout << "The queue is full" << endl;
return;
}
Q.vect[Q.tail] = a;
Q.tail++;
}
Atom get(Queue& Q) //dequeue function
{
if (isEmpty(Q))
{
cout << "The queue is empty" << endl;
Atom a;
return a;
}
Atom x = Q.vect[Q.head];
Q.head++;
return x;
}
Atom front(Queue& Q)
{
if (isEmpty(Q))
{
cout << "The queue is empty" << endl;
Atom a;
return a;
}
return Q.vect[Q.head];
}
int isEmpty(Queue& Q)
{
return (Q.head == Q.tail);
}
Я получил 2 ошибки впереди и получил функцию "неинициализированная локальная переменная" 'a' used "Как это исправить и что я делаю неправильно?
Заголовок:
#ifndef HEADER_H_
#define HEADER_H_
#define DIMMAX 8
typedef int Atom;
struct Queue {
int head, tail;
Atom vect[DIMMAX];
};
void initQueue(Queue& Q);
void put(Queue& Q, Atom a);
Atom get(Queue& Q);
Atom front(Queue& Q);
int isEmpty(Queue& Q);
#endif
Это заголовок с функциями.