用队列实现栈
把数据从队头出来,再插入到队尾,最后一个不插入,直接出栈就实现了出栈操作。
取栈顶元素就是获取队尾元素。
其余操作入栈,判空,销毁类似于队列操作。
可以用一个队列实现栈,也可以用俩队列,我用的一个队列。
typedef int type;
typedef struct Node {
type data;
struct Node* next;
}Node;
typedef struct Queue {
struct Node* front;
struct Node* rear;
}Queue;
//队列初始化
void QueueInit(Queue* p) {
p->front = p->rear = NULL;
}
//创建新节点
struct Node* CreatNode(type x) {
Node* new = (Node*)malloc(sizeof(Node));
new->data = x;
new->next = NULL;
return new;
}
//队列入队,尾插
void QueuePush(Queue* p, type x) {
Node* node = CreatNode(x);
C语言:队列实现栈的技巧

本文探讨了如何使用C语言中的队列来实现栈的功能。通过将数据从队头移除并重新插入队尾,可以模拟栈的出栈操作。栈顶元素等同于队尾元素。除了出栈和取栈顶元素,其他的栈操作如入栈、判空和销毁也可类似地用队列操作完成。示例中仅使用了一个队列来实现这一机制。
最低0.47元/天 解锁文章
652





