如何用两个栈实现一个队列?

先看分析

 来看代码,因为代码量巨大,其中包括两个头文件,两个实现函数 , 这块就写一个两个栈实现按一个队列的头文件以及函数名,填补代码不难的,有需要的话,我在评论区发出来:

这部分资源我已经在我主页资源那块上传  有需要直接去下载即可:

two_stack_to_queue:

#pragma once
#include "stack.h"   //这是栈的头函数 
 
typedef struct TSTqueue
{
	Stack s1;
	Stack s2;
}TSTqueue, *PTSTqueue;
 
//增删改查
//初始化
void my_Init_queue(PTSTqueue pq);//该函数中调用了stack.h中的初始化函数  记得传参的时候(&pq->s1或者是&pq->s2)
 
//入队
bool my_Push(PTSTqueue pq, ELEM_TYPE val);  //ELEM_TYPE在stack.h中是个宏  替代int
 
//出队(如果出队操作成功,则还要返回出队的值)
bool my_Pop(PTSTqueue pq, ELEM_TYPE *rtval);   //rtval是需要返回出去的值
 
//获取队头元素值(如果Top函数执行成功,则还要返回队头的值)
bool my_Top(PTSTqueue pq, ELEM_TYPE *rtval);
 
//获取有效值个数
int my_Get_length(PTSTqueue pq);
 
//判空
bool my_IsEmpty(PTSTqueue pq);
 
//清空
void my_Clear(PTSTqueue pq);
 
//销毁
void my_Destroy(PTSTqueue pq);
 
//打印
void my_Show(PTSTqueue pq);

两个栈实现一个队列   那么两个队列实现一个栈怎么实现呢?我来给个思维图

 “”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值