栈的应用:火车调度问题

栈的应用:火车调度

问题概述

输入第一行是一个整数N,表示车厢的数量;第二行是一个由Y于R组成的字符串,表示车厢的排列,其中Y表示硬座,R表示软座。我们的任务,是借助一个栈,使得车厢的顺序变为软座在硬座前。
输出是一个由I与O组成的字符串,代表栈的操作,I表示入栈,O表示出栈

思路分析

逐一读入火车字符串,遇到硬座,就把它入栈缓存,遇到软座,就先入栈,然后立刻出栈(相当于没有缓存),最后,当所有车厢被读入完毕,此时所有硬座都在栈内缓存,依次出栈直到栈空为止。

代🐎与注释

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

struct ListNode {
   
 char data;
 ListNode* Next;
 ListNode* Last;
};
struct List {
   
 ListNode* header;
 ListNode* trailer;
 int _size;
};

void CreateList(List* l)//build the list
{
   
 l->_size = 0;
 l->header = (ListNode*)malloc(sizeof(ListNode));
 l->trailer = (ListNode*)malloc(sizeof(ListNode));
 l->header->Next = l
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值