In my C++ program (I know I should have header files and stuff but this is the teacher requested format) it has a compilation error no matching function call for enqueue and I've tried using . and -> operators as well. Screenshots and code below. I'd like to know why I'm getting that error and how to avoid it in the future.
#include <iostream>
#include <string>
using namespace std;
struct plane
{
    string name;
    char state;
    //time
};
struct Queue // creation of queue for landing
{
    int front, end, size;
    unsigned capacity; // makes an integer var that cannot be negative 
    plane* planearray;// * and [] are synonymous
};
//Queue operator =(plane* array, const Queue& queue)
//{
//}
plane* createplane(char state, string name)
{
    cout<<"Enter the plane's name";
    cin>>name;
    cout<<"Is the plane landing or taking off? 'T t (takeoff)' or 'L l(landing)' "<<endl;
    cin>>state;
}
// function to create a queue of a given size
/*Why pointer in obj creation*/
Queue* createQueue(unsigned capacity) // takes in capacity because you want to modify it
{
    char takeoffland;
    cout<<"Is this a takeoff or landing queue? enter 'T t (takeoff)' or 'L l(landing)' "<<endl;
    cin>>takeoffland;
    if(takeoffland=='T'||takeoffland=='t')
    {
        Queue* tqueue = new Queue();
        tqueue->capacity=capacity;
        tqueue->front=tqueue->size = 0;
        tqueue->end = capacity -1;
        /*website has algorithm as [(queue->capactiy*sizeof(class)] looked up sizeof to be size of the data type but dont quite get it still   */
        tqueue->planearray = new plane[(tqueue->capacity)];
        return tqueue;
    }
    else if(takeoffland=='L'||takeoffland=='l')
    {
        Queue* lqueue = new Queue();
        lqueue->capacity=capacity;
        lqueue->front=lqueue->size = 0;
        lqueue->end = capacity -1;
        /*website has algorithm as [(queue->capactiy*sizeof(class)] looked up sizeof to be size of the data type but dont quite get it still   */
        lqueue->planearray = new plane[(lqueue->capacity)];
        return lqueue;
    }
    else{
        cout<<"Invalid input try again";
    }
}
bool isFull(Queue* queue)
{
    if(queue->size == queue->capacity)
    {
        cout<<"The queue is full";
        return true;
    }
    else{
        return false;
    }
}
bool isEmpty(Queue* queue)
{
    if(queue->size == 0)
    {
        cout<<"The queue is empty";
        return true;
    }
    else
    {
        return false;
    }
}
void enqueue(Queue* queue, plane* p)
{
    if(isFull(queue))
    {
        cout<<"Cannot add to queue, its full";
        return;
    }
    plane* insert = p;
    queue->end = queue->end+1;// makes end the very end
    queue->planearray[queue->end] = *insert;// makes the end the new addition to queue
    queue->size += 1;
    if(p->state=='t'||p->state=='T')
    {
    cout<<"Plane added to takeoff queue"<<endl;
    }
    else if(p->state=='L'||p->state=='l')
    {
        cout<<"Plane added to landing queue"<<endl;
    }
}
int main(){
Queue* landing = createQueue(1);
plane p1;
enqueue(landing, p1);
};

 
    