• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
\0\0\0
博客园    首页    新随笔    联系   管理    订阅  订阅
列车重排

数据结构书上的。。

#include <iostream>
#include <string.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

// 列车重排 
int k;        // 轨道的数量
int num;      // 车的数量
int arr[100]; // 车的序列 
int arr2[10][100]; // 轨道情况 
int trying = 0;    // 即将要进轨道的车辆下标 
int trying2 = 0;   // 最大的空的轨道的编号 
int outing = 1;    // 当前可以出轨道的车辆编号 

int main(int argc, char *argv[]) {
	cin>>k;
	cin>>num;
	memset(arr, 0, sizeof(int) * 100);
	memset(arr2, 0, sizeof(int) * 1000);
	for(int i = 0; i < num; i++) 
	{
		cin>>arr[i];
	}
	//
	while(trying < num && trying2 < k)
	{
		bool dofind = false;
		for(int i = 0; i < k; i++)
		{
			if( arr[trying] == outing ) 
			{
				cout<<"--------------------------------------------"<<endl;
				cout<<arr[trying]<<"号车直接到出轨处"<<endl;
				outing++;
				trying++;
				break;
			}
			if(arr2[i][0] == 0 || arr[trying] > arr2[i][arr2[i][0]])
			{
				arr2[i][0]++;
				arr2[i][arr2[i][0]] = arr[trying];
				dofind = true;
				if( trying2 < i )  
				{
					trying2 = i;
				}
				trying++;
				break;
			}
		}
		cout<<"--------------------------------------------"<<endl;
		for(int i = 0; i <= trying2; i++)
		{
			for(int j = 1; j <= arr2[i][0]; j++)
			{
				cout<<arr2[i][j]<<" ";
			}
			cout<<endl;
		}
	}
	if( trying != num)
	{
		cout<<"no method!"<<endl;
	}
	else
	{
		// 按顺序出站
		int front[10] = {1,1,1,1,1,1,1,1,1,1};
		while( outing <= num ) 
		{
			for(int i = 0; i < k; i++)
			{
				if( arr2[i][front[i]] == outing )
				{
					cout<<"--------------------------------------------"<<endl;
					cout<<outing<<"号车出站"<<endl;
					outing++;
					front[i]++;
					break; 
				}
			}
		}
	} 
	return 0;
}

  没有正儿八经的用队列。

  如果车辆的编号不是连续的,就先要进行编号的排序,才能确定依次出站的车辆编号的序列。

  当然我这个只是最简单的列车重排。

 

此博客主要是个人记录
posted on 2015-03-26 19:09  \0\0\0  阅读(172)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3