微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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');
//....

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐