C中的多个数据结构

我有一个文件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() {}

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

#include "queue.h"

我不知道从哪里去…

解决方法

而不是创建Head和Tail全局变量,而是创建包含它们的另一个结构,例如:

struct Queue {
    struct Node *head;
    struct Node *tail;
};

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

您还需要一个初始化head和tail为NULL的initQueue函数.然后使用队列可以看起来像:

struct Queue queue1;
initQueue(&queue1);
addCharacter(&queue1,'a');
//....

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...