我有一个文件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)
我不知道从哪里去...
而不是制作Head和Tail全局变量,而是创建包含它们的另一个结构,例如:
struct Queue {
struct Node *head;
struct Node *tail;
};
Run Code Online (Sandbox Code Playgroud)
然后更改在队列上运行的函数以获取指向Queue结构的指针,并对其进行操作.
您还需要一个initQueue初始化函数head和tail对NULL.然后使用队列可以看起来像:
struct Queue queue1;
initQueue(&queue1);
addCharacter(&queue1, 'a');
//....
Run Code Online (Sandbox Code Playgroud)