⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.cpp

📁 车厢调度----数据结构课程设计。利用的栈的结构进行设计
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "Stack.h"


/*最后一个车厢的号码*/
long total=0;/*总的组合方案数目*/
int end;

Status Stack_Full(SqStack s)
{
	if(s.top-s.base==end)
		return 1;
	return 0;
}
void Stack_printreverse(SqStack s)
{
     SElemType *po;
     po=s.base;
	 printf("\t[%ld]:   ",total);
	 for(;po!=s.top;) 
		 printf("%d ",*po++);
	 printf("\n");
}

/*---------------核心算法----------------*/
void search(SqStack &inputp,SqStack &tempp,SqStack &outputp)
{  
	if(!StackEmpty(inputp))
	{
		Push(tempp,Pop(inputp));
		search(inputp,tempp,outputp);
		Push(inputp,Pop(tempp));
	}
	if(!StackEmpty(tempp))
	{
		Push(outputp,Pop(tempp));
		search(inputp,tempp,outputp);
		Push(tempp,Pop(outputp));
	}
	if(Stack_Full(outputp))
	{
		total++;
		Stack_printreverse(outputp);
	}
}
/*--------------核心算法结束---------------*/


/*----------------主程序-------------------*/
void main()
{
	SqStack input,temp,output;
	int i;
	printf("车厢调度\n");

	printf("\n 请输入车厢的长度:\n");
	scanf("%d",&end);
	/*初始化三个栈*/
	InitStack(input);
	input.stacksize=end;
	InitStack(temp);
	temp.stacksize = end;
	InitStack(output);
	output.stacksize = end ;

	/*将车厢号码进栈*/
	for(i=end;i>=1;i--)
	Push(input,i);
	search(input,temp,output);
	printf("\n\t\t总的组合数目为:%ld\n",total);
	
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -