/*将栈S中的元素逆置,使用额外的一个栈L和非数组变量*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define OK 1
#define ERROR 0
#define MAXSIZE 20typedef int ElemType;
typedef int Status;
typedef struct
{ElemType data[MAXSIZE];int top;
}Sqstack;//顺序栈的初始化
Status InitSqstack(Sqstack * S)
{S->top=-1;return OK;
}//顺序栈的建立
Status Create(Sqstack * S,int n)
{srand(time(0));for(int i=0;i<n;i++){S->data[++S->top]=rand()%100+1;}return OK;
}//顺序栈的出栈
Status Pop(Sqstack * S,ElemType * e)
{*e=S->data[S->top--];return OK;
}//顺序栈的入栈
Status Push(Sqstack * S,ElemType e)
{S->data[++S->top]=e;return OK;
}//顺序栈输出
void Print(Sqstack * S)
{printf("输出元素:\n");for(int i=S->top;i>=0;i--){printf("%d ",S->data[i]);}printf("\n");
}//利用非数组变量逆置栈S里的元素
Status Invers(Sqstack * S,Sqstack *L,int n)
{ElemType DeElem,temp;for(int k=0;k<n-1;k++){temp=S->data[S->top--];for(int i=n-k-2;i>=0;i--){Pop(S,&DeElem);Push(L,DeElem);}Push(S,temp);for(int j=n-k-2;j>=0;j--){Pop(L,&DeElem);Push(S,DeElem);}}return OK;
}int main()
{int ElemNumber;Sqstack S,L;InitSqstack(&L);InitSqstack(&S);printf("请输入元素个数:\n");scanf("%d",&ElemNumber);Create(&S,ElemNumber);Print(&S);Invers(&S,&L,ElemNumber);printf("逆置后:\n");Print(&S);return OK;
}

将栈S中的元素逆置,使用额外的一个栈L和非数组变量相关推荐

  1. 利用栈和队列将队列中的元素逆置☆

    题目:有一个队列和一个栈,设计一个算法是队列中的元素逆置. 分析:         我们可以一次取出队列中的元素放到栈中,然后在依次取出入队. 代码: struct Stack {int* arr; ...

  2. 队列练习之Example005-Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法

    Example005 题目 Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法. 分析 主要考查对队列和栈的特性与操作.由于对队列的一系列操作不可能将其中的元素全部逆置,而栈可以将入栈的元素 ...

  3. C语言编程>第二十一周 ② 请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中。

    例题:请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中. 注意:仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容. 代码如下: #include& ...

  4. c语言编写队列元素逆置,数据结构与算法实验—利用栈逆置队列元素.doc

    数据结构与算法实验-利用栈逆置队列元素 利用栈逆置队列元素实验报告 通信1204班 谢崇赟 实验名称 利用堆栈将队列中的元素逆置 实验目的 会定义顺序栈和链栈的结点类型. 掌握栈的插入和删除结点在操作 ...

  5. 借助于栈结构将一个单链表逆置

    借助于栈结构将一个单链表逆置. 输入输出样例:1组 #1 样例输入: 5 //链表中有几个元素 1 2 3 4 5 //链表中的元素分别是什么 样例输出: 5 4 3 2 1 //逆置后输出,利用栈结 ...

  6. 第5周作业(杨辉三角形,队列元素逆置,银行排队——队列,整数划分问题,买票问题——卡特兰数,小兔的棋盘——卡特兰数)

    一.杨辉三角形 [问题描述]杨辉三角形的打印,请用循环队列实现.不采用"循环队列",不给分. [样例输入] 4 [样例输出] 1 1 1 1 2 1 1 3 3 1 #includ ...

  7. 20200221:在排序数组中查找元素的第一个和最后一个位置(leetcode34)

    在排序数组中查找元素的第一个和最后一个位置 题目 思路与算法 代码实现 题目 思路与算法 题目要求了算法复杂度为O(logN),因此必须是二分查找来实现,但是其实最简单的思路应该就是顺序和逆序的遍历了 ...

  8. 算法----- 在排序数组中查找元素的第一个和最后一个位置

    题目: 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.你的算法时间复杂度必须是 O(log ...

  9. python 在排序数组中查找元素的第一个和最后一个位置

    在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.如果数组中不存在目标值 target,返回 ...

最新文章

  1. 只在必要时保存服务器控件视图状态
  2. [ZT]SQL Server 的事务日志意外增大或充满的处理方法
  3. 在当当买了python怎么下载源代码-Python爬取当当、京东、亚马逊图书信息代码实例...
  4. 关于S/4HANA里Sales Office 和Sales Organization那些事儿
  5. linux系统下开机启动流程
  6. linux sd卡 u盘区别,linux下实现U盘和sd卡的自动挂载
  7. 使用 setTimeout 实现 setInterval
  8. Python摄像头录制视频保存到本地
  9. [转载] Sublime Text 3 插件 ClangFormat 格式化 C/C++版
  10. DataType--数值类型
  11. matlab中用xlsread()函数在Excel中读取数据
  12. Android窗口被隐藏了怎么办,Android studio中IDE窗口怎么显示或者隐藏?
  13. css 改变图片的背景色,css3实现背景图片颜色修改的多种方式
  14. LaTex 编译 bib 参考文献
  15. 内燃机 vs 外燃机
  16. 商城系统面试题(二)
  17. source insight 仿 vscode 主题 (GitHub免积分下载)
  18. 蛋白质组学研究的经典方法:双向电泳技术解读
  19. 2017达内前端开发工程师视频教程
  20. python财政收入预测分析_Python:Lasso方法、GM预测模型、神经网络预测模型之财政收入影响因素分析及预测...

热门文章

  1. 电信 NB-IoT无缝对接阿里云IoT 物联网平台
  2. SU-03离线语音模块的配置使用
  3. 简述计算机辅助质量管理系统的作用,2018年7月电大本科《机械CADCAM》期末考试试题及答案...
  4. PTA - 数据库合集54
  5. DiskGenius 百度云下载链接
  6. VW ware安装Ubuntu虚拟机及环境配置
  7. 【模型剪枝】|Learning Efficient Convolutional Networks through Network Slimming
  8. 新鲜出炉!由腾讯安全深度参编的“首份网络安全态势感知国家标准”发布
  9. loopback interface data flow
  10. 利用Github免费搭建个人主页(个人博客)