用队列实现栈
把数据从队头出来,再插入到队尾,最后一个不插入,直接出栈就实现了出栈操作。
取栈顶元素就是获取队尾元素。
其余操作入栈,判空,销毁类似于队列操作。
可以用一个队列实现栈,也可以用俩队列,我用的一个队列。
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)