/****************************************************************************/
/* File: queue.h
*/
/****************************************************************************/
/****************************************************************************/
/* */
/* Simple Queue ADT */
/* */
/* Declaration */
/* */
/****************************************************************************/
typedef struct {
int key;
int value;
} data_t;
typedef struct queueNode {
struct queueNode *next, *prev;
data_t *data;
} QueueNode;
typedef struct queueType {
QueueNode *head;
QueueNode *tail;
} Queue;
/ ********************************************** **********************
好吧,所以我上面有一个名为Queue.h的文件,这在某些方面对我有意义,因为它给data_t一对值(值和键)并将它存储在QueueNode中,它被放置在队列的尾部或头部。
我遇到的问题是我不知道如何使用它来创建一个名为Queue.c的类来执行以下功能:
voidinitQueue(Queue *self){
}
void enQueue(Queue *self, data_t *data){
}
QueueNode *frontNode(Queue *self){
}
data_t *frontValue(Queue *self){
}
data_t *dequeue(Queue *self){
}
void removeNode(queue *self, queueNode *p){
}
QueueNode *findNode(queue *self, data_t *data){
}
void printQ(queue *self, char *label){
}
这个(不应该改变)main():
/*
int main ()
{
Queue myQueue;
QueueNode *p;
data_t data[10], d2;
int i;
initQueue (&myQueue);
for (i = 0; i < 10; i++) {
data[i].key = i;
data[i].value = 10*i;
enQueue (&myQueue, &data[i]);
}
printQ (&myQueue, "MyQueue:" );
}
*/
现在我不会要求任何人为我这样做,从长远来看这对我没有任何帮助,但我完全不知道该怎么做。
我对队列的工作方式有基本的了解,我的问题是如何执行它。我现在也在另一个班级学习java,它开始让我迷惑什么规则适用于哪个班级(如在学校班级,而不是java班级)
如果有人可以告诉我一个人如何与其中一些(或至少是initQueue)合作,我会非常感激,我已经在这12小时工作了,我正在绝望...... 。
编辑: 更新:这就是我现在拥有的:
void initQueue(Queue *self)
{
self->head = NULL;
self->tail = NULL;
}
void enQueue(Queue *self, data_t *data)
{
self->head = data;
}