利用链栈逆置链队列

该博客介绍了一种使用链栈逆置链队列的算法。首先通过数组保存队列元素,然后依次出队并入栈,再将栈内元素依次出栈并入队,从而实现队列的逆置。代码示例展示了如何使用C语言实现这一过程。
摘要由CSDN通过智能技术生成

题目:

       利用链栈逆置链队列。

算法中文描述:

1、  建立一个队列,在建队列的同时,采用数组保存队列中的元素;

2、  输出该队列,由于在此处如果调用print()函数输出队列元素的话会导致队列的队头和队尾指针都指向队尾,这样使得后面的逆置等操作无法实现,因此采用顺序输出数组元素的方法来输出队列元素,这也是步骤1中用数组保存队列元素的目的之所在;

3、  建立一个空栈top

4、  依次将队列元素全部出队,并逐个入栈;

5、  依次将栈内的全部元素出栈,并逐个将出栈的元素入队;

6、  再次输出队列,即完成队列逆置。

 

#include  <stdio.h>

#include  <stdlib.h>

#define  null   0

#define  maxsize  100

typedef  int  datatype;

 

int  a[maxsize];

 

typedef  struct  node    //定义链栈节点类型

{

       datatype  data;      //数据域

       struct   node   *next;    //指针域

}Linkstack;

 

typedef  struct  qnode       //定义队列节点值类型

{

       datatype  data;

       struct  qnode  *next;

}qnode;

 

typedef  struct        //定义指向队列的队列指针

{

       qnode  *front;

       qnode  *rear;

}Linkqueue;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值