c语言列车调度 栈,这个用栈调度火车的程序到底是怎么回事?
这个用栈调度火车的程序到底是怎么回事?
下面是一个用栈来实现火车调度的程序,其中,in代表初始的车列顺序,transter代表用来调度的火车轨,out代表调度后的火车轨,程序功能如下,如果in中车列顺序为,123,经过调度后,out为五种,321,231,213,132,123.但是本人菜鸟啊,虽然好不容易在网上找到一个程序,但是却看不明这个程序啊!真是郁闷,希望有哪位大虾能给俺解释解释。多谢!
#include
#include
using namespace std;
int print(stack a) //输出
{
stack b;
while(!a.empty())
{
b.push(a.top());
a.pop();
}
while(!b.empty())
{
cout<
b.pop();
}
cout<
return 0;
}
int sort(int n,long &sum,stack in,stack transfer,stack out)
{
if(in.empty()&&transfer.empty())
{
print(out);
sum++;
return 0;
}
if(!in.empty())
{
int temp=in.top();
transfer.push(temp); //从in中弹出一个元素,并压入transfer
in.pop();
sort(n,sum,in,transfer,out); //递归调用
transfer.pop(); //弹出transfer的头元素(在这一层中,刚从a中传进来的)
in.push(temp);
}
if(!transfer.empty())
{
out.push(transfer.top()); //从transfer中弹出一个元素,并压入out
transfer.pop();
sort(n,sum,in,transfer,out); //递归调用
}
return 0;
}
int main()
{
stack in,transfer,out;
cout<
int n;
cin>>n;
for(int i=0;i
in.push(n-i);
long sum=0; //可能情况的总数
sort(n,sum,in,transfer,out);
cout<
return 0;
}
[此贴子已经被作者于2007-4-5 20:30:01编辑过]
c语言列车调度 栈,这个用栈调度火车的程序到底是怎么回事?相关推荐
- 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解
目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...
- C语言编程中的“堆”和“栈”七大不同之处
对于编程初学者来说会接触到一些难以理解的名称,比如堆(heap).栈(stack).堆栈(stack)等.初学开发过程中往往让人混淆不清.今天我们来谈谈堆和栈的具体区别,来帮助初学者理清思路. 堆和栈 ...
- c语言建立栈(顺序栈、双栈和链式栈)
c语言建立栈 顺序存储 栈的顺序存储定义 初始化栈 入栈操作 出栈操作 其余操作 读取栈顶元素 栈中元素个数 栈是否为空 双栈 双栈的顺序存储结构定义 建立双栈 判断栈为空 进栈操作 出栈操作 链式栈 ...
- 数据结构与算法(C语言) | 栈和队列——栈(自己做过测试)
栈是一种重要的线性结构,通常称,栈和队列是限定插入和删除只能在表的"端点"进行的线性表.(后进先出) –栈的元素必须"后进先出". –栈的操作只能在这个线性表的 ...
- c语言获取系统剩余内存_C语言编程中的“堆”和“栈”七大不同之处
更多精彩,请点击上方蓝字关注我们! 对于编程初学者来说会接触到一些难以理解的名称,比如堆(heap).栈(stack).堆栈(stack)等.初学开发过程中往往让人混淆不清.今天我们来谈谈堆和栈的具体 ...
- c语言静态变量存在堆还是栈,c 类 static 函数 什么样是静态变量?嵌入式C语言的堆栈管理如何实现...
C语言中静态变量是什么意思,有什么作用,static在数据类型前面表示什么 最近刚看了C存储类的章节.所以来说说. C语言为变量提供了⑤种不同的存储模型,或者说是存储类. ①个变量可以用存储时期描述, ...
- C语言中用链表构建栈讲解,C语言数据结构之使用链表模拟栈的实例
C语言数据结构之使用链表模拟栈的实例 以下是"使用链表模拟栈"的简单示例: 1. 用C语言实现的版本 #include #include typedef char datatype ...
- C语言栈的用法(创建、入栈、出栈、遍历)
C语言栈的用法(创建.入栈.出栈.遍历) 本篇博客主要简单介绍如何使用C语言构建栈,元素入栈,元素出栈以及遍历所有的栈内元素 1.栈的定义 首先对栈进行定义,构建一个简单的结构体,采用typedef ...
- 数据结构(C语言第二版)严蔚敏编,数据结构电子教材,线性表,栈,队列,顺序存储结构,初始化,入栈,出栈,入队,出队,c++
前言 提示:本篇文章收录严蔚敏编写的数据结构C语言版本 简单介绍一下顺序表,顺序栈,循环队列,的顺序存储结构之间的区别 代码参考严蔚敏编写的<数据结构>,二维码动态演示可扫码可观看. - ...
最新文章
- 生成目录树CMD命令(bat文件)
- 2015年上海现场赛重现 (A几何, K暴力搜索)
- [Java] 蓝桥杯ADV-182 算法提高 前10名
- kafka搭建、学习(一)
- 数据库物理结构设计-建索引原则
- 转:zTree树控件入门之checkbox:如何动态设置节点的checkbox选择框启用与禁用状态(chkDisabled)...
- 金蝶如何用计算机,金蝶软件要换电脑用,该怎么处理?
- 论学习计划的 重要性
- (浙大-19-夏-数据结构学习笔记)二叉树的初步认识
- photoshop中怎么绘制虚线
- 前端实现QQ聊天气泡
- Netty内存池 (5w长文+史上最全)
- 自编码器(Auto-encoder)的概念和应用
- 搜索 SAP成都研究院廖婧:SAP C4C社交媒体集成概述
- 英伟达 jetson xavier agx 开发(2)修改内核设备树
- 安卓动态调试七种武器之孔雀翎 – Ida Pro – 蒸米
- 解决使用Arduino IDE 下载esp8266开发版很慢的问题(支持任何版本)
- 在计算机时代初期,程序员是如何编程的?
- 系统备份 矮人dos工具箱
- 微信抢号软件_什么微信编辑软件可以处理图片?公众号怎么才能让字写在图片背景上面?...
热门文章
- 計算機二級-java-03
- 服务器centos安装mysql_centos下安装mysql服务器的方法
- linux mongodb服务启动命令行,Linux下安装、启动、停止mongodb
- 记一次library cache lock/library cache pin导致的函数编译hang住分析及处理过程
- 数据和云,半年文章精选(文末赠书)
- 静默错误:Oracle 数据库是如何应对和处理的 ?
- vue3,对比 vue2 有什么优点?
- 我的编辑器能玩贪吃蛇,一起玩不?
- Java之五种遍历Map集合的方式
- 一个神奇的bug:OOM?优雅终止线程?系统内存占用较高?