搜索
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 车厢调度--递归
标题:
车厢调度--递归
只看楼主
妍清舞
等 级:
新手上路
帖 子:121
专家分:0
注 册:2007-11-12
楼主
问题点数:0 回复次数:4
车厢调度--递归
车厢调度问题用递归怎么实现,要求输出各种可能的情况。麻烦各位大哥大姐解释一下,不需要太详细的算法,只要解释如何用递归实现就行。谢谢!
搜索更多相关主题的帖子:
递归
车厢
2008-03-28 23:12
renmingjiang
等 级:
新手上路
帖 子:4
专家分:0
注 册:2008-3-26
第
2
楼
得分:0
你能吧“车厢调度”仔细地描述一下吗?
2008-03-28 23:32
妍清舞
等 级:
新手上路
帖 子:121
专家分:0
注 册:2007-11-12
第
3
楼
得分:0
问题描述:
假设停在铁路调度站入口处的车厢序列的编号依次为1,2,3,...n设计一个程序,求 出所有可能由此输出的长度为n的车厢序列
基本要求: 用栈的顺序存储结构实现基本操作。 该问题要用递归的思想。
假设n=3,则有:3 2 1;2 3 1;2 1 3;1 2 3;1 3 2;五种可能,即每一个编号均有“入”和“出”两种状态。
2008-03-29 11:15
妍清舞
等 级:
新手上路
帖 子:121
专家分:0
注 册:2007-11-12
第
4
楼
得分:0
以下是从网上找到的递归函数,但看不太明白,麻烦各位大哥大姐帮忙分析一下,谢谢!
void Attemper(int pos,int path[],int num){
//车厢调度递归函数,当前处理位置pos的元素
int i,m;
//SqStack *S;
//InitStack(S);
if(pos<c_num){
Push(pos+1);
Attemper(pos+1,path,num);
Pop();
}
if(!Emptys()){
m=Pop();
path[num]=m;
num++;
Attemper(pos,path,num);
Push(m);
}
if(pos==c_num&&Emptys()){
for(i=0;i<num;i++)printf("%2d",path[i]);
printf("\n");
}
}//Attemper
还有如何改为先输出1 2 3 最后输出3 2 1
谢谢!
2008-04-06 23:03
zhaoyg
等 级:
新手上路
帖 子:328
专家分:0
注 册:2006-8-28
第
5
楼
得分:0
这个题我做过.
个人认为,若两个车厢号不是紧挨的,那么后一个车厢不可能排在前一个车厢的前面.若编号以此为0,1,2,3,那么例如当n=3时,不可能存在3021这样的序列
麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-04-07 00:04
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-205933-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.099166 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved