C中的多个数据结构

Atr*_*rus 3 c queue object

我有一个文件queue.c,用C语言定义一个队列.我如何使3个独立的队列相互独立?我对C不是很有经验,我一直在OO视图中考虑它,而且我知道我不能这样做.

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

struct Node
{
    char data;
    struct Node *next;
} *Head, *Tail;

void addCharacter(char c)
{
    struct Node *temp1, *temp2;
    temp1 = (struct Node *)malloc(sizeof(struct Node));
    temp1->data = c;

    temp2 = Tail;

    if(Head == NULL)
    {
        Head = temp1;
        Head->next = NULL;
        Tail = Head;
    }
    else
    {
        Tail = temp1;
        temp1->next = NULL;
        temp2->next = temp1;
    }
}

void deleteCharacter()
{
    struct Node *temp1 = Head;
    Head = temp1->next;
    free(temp1);
}

int replaceCharacter(char c)
{
    Head->data = c;
}

int main() {}
Run Code Online (Sandbox Code Playgroud)

这是我的队列,而我对另一个C文件的所有内容基本上是:

#include "queue.h"
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里去...

int*_*jay 9

而不是制作HeadTail全局变量,而是创建包含它们的另一个结构,例如:

struct Queue {
    struct Node *head;
    struct Node *tail;
};
Run Code Online (Sandbox Code Playgroud)

然后更改在队列上运行的函数以获取指向Queue结构的指针,并对其进行操作.

您还需要一个initQueue初始化函数headtailNULL.然后使用队列可以看起来像:

struct Queue queue1;
initQueue(&queue1);
addCharacter(&queue1, 'a');
//....
Run Code Online (Sandbox Code Playgroud)