【发布时间】:2020-06-27 21:30:21
【问题描述】:
我必须创建一个接收单个参数的函数,这是队列,并返回在函数中创建的新队列,我真的不知道该怎么做以及我做错了什么。
Queue * reverse(Queue * f) {
Queue * n = (Queue*)malloc(sizeof(Queue));
n = create_queue();
if (empty_queue(f)) {
return n;
}else {
int v = pop_queue(f);
f = reverse(f);
push_queue(n, v);
}
}
如有疑问,我的队列是这样的:
typedef struct queue Queue;
typedef struct elemqueue ElemQueue;
struct elemfila {
int info;
ElemQueue* next;
};
struct fila {
ElemQueue * start;
ElemQueue * end;
};
我这样称呼它:
int main(void) {
Queue * f;
f = create_queue();
push_queue(f, 2);
push_queue(f, 4);
push_queue(f, 6);
f = reverse(f);
while (!empty_queue(f)) {
int n = pop_queue(f);
printf(" %d ", n);
}
free_queue(f);
return 0;
}
如图所示,我的队列是 [2|4|6](只是一个示例),我希望它转到 [6|4|2] 并打印出来。
【问题讨论】:
-
这是一个不错的开始,但请进行编辑以显示您的调用代码,如果有任何输入,请将其包括在内,并明确说明您的预期输出或行为是什么。这将使它接近,它不会一直成为minimal reproducible example。
-
这就是我刚刚做的,谢谢!!