uva514(trail)(模拟栈)

 1 //#define LOCAL
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cstdlib>
 5 #include<stack>
 6 using namespace std;
 7 const int maxn=1005;
 8 stack<int>train;
 9 int ss[maxn];
10 int main()
11 {
12   #ifdef LOCAL
13      freopen("test.in","r",stdin);
14    #endif
15  int n,k;
16  while(scanf("%d",&n)&&n>0)
17  {
18      while(1)
19     {
20       scanf("%d",&ss[1]);
21       if(ss[1]==0)break;
22      for(int i=2;i<=n;i++)
23          scanf("%d",ss+i);
24      while(!train.empty())
25            train.pop();
26       k=1;
27     for(int i=1;i<=n;i++)
28     {
29          train.push(i);
30          while(!train.empty()&&train.top()==ss[k])
31       {
32           k++;
33           train.pop();
34       }
35     }
36     if(train.empty())printf("Yes\n");
37     else printf("No\n");
38     }
39  }
40  return 0;
41 }

题意: 一辆火车一次车厢依次进栈(1,2,3,4,5...,n),问有没有可能有安给出的方式出栈。

时间: 2024-10-14 20:07:28

uva514(trail)(模拟栈)的相关文章

java 16 - 5 LinkedList模拟栈数据结构的集合

请用LinkedList模拟栈数据结构的集合,并测试 题目的意思是: 你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟. 1 package cn_LinkedList; 2 3 import java.util.LinkedList; 4 5 6 7 8 public class MyStack { 9 10 //定义一个LinkedList类的成员变量 11 private LinkedList list = null; 12 13 /** 14 * 构造方法 15

Hdu 3887树状数组+模拟栈

题目链接 Counting Offspring Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1757    Accepted Submission(s): 582 Problem Description You are given a tree, it’s root is p, and the node is numbered fr

用数组模拟栈的结构

package datastruct; import java.util.Arrays; /** * 用数组模拟栈的结构:后进先出(LIFO) 线性表结构 * @author stone * 2014-07-29 06:34:49 */ public class SimulateStack<E> { public static void main(String[] args) { SimulateStack<String> ss = new SimulateStack<Str

采用LinkedList来模拟栈数据结构的集合--先进后出

三.用LinkedList来模拟栈数据结构的集合 /* * 自定义一个数据结构为LinkedList的集合类*/public class MyCollection_LinkedList { public LinkedList linkedList;            public MyCollection_LinkedList() {             //在构造方法里初始化             linkedList= new LinkedList();             }

java、C语言实现数组模拟栈

java: public class ArrayStack { private int[] data; private int top; private int size; public ArrayStack(int size) { this.data = new int[size]; this.size = size; this.top = -1; } public boolean isEmpty() { if (this.top == -1) { return true; } return

迷宫问题,手动模拟栈

(1)迷宫问题 ①问题描述 这是心理学中的一个经典问题.心理学家把一只老鼠从一个无顶盖的大盒子的入口处放入,让老鼠自行找到出口出来.迷宫中设置很多障碍阻止老鼠前行,迷宫唯一的出口处放有一块奶酪,吸引老鼠找到出口. 简而言之,迷宫问题是解决从布置了许多障碍的通道中寻找出路的问题.本题设置的迷宫如图1所示. 图1 迷宫示意图 迷宫四周设为墙:无填充处,为可通处.设每个点有四个可通方向,分别为东.南.西.北.左上角为入口.右下角为出口.迷宫有一个入口,一个出口.设计程序求解迷宫的一条通路. ②基本要求

栈模拟队列 队列模拟栈

代码如下: PS:做了一些测试,目前没问题.有问题请指正... 栈模拟队列 队列模拟栈

ACM/ICPC 之 用双向链表 or 模拟栈 解“栈混洗”问题-火车调度(Tshing Hua OJ - Train)

本篇用双向链表和模拟栈混洗过程两种解答方式具体解答“栈混洗”的应用问题 有关栈混洗的定义和解释在此篇:手记-栈与队列相关 列车调度(Train) Description Figure 1 shows the structure of a station for train dispatching. Figure 1 In this station, A is the entrance for each train and B is the exit. S is the transfer end.

7 两个栈模拟队列,两个队列模拟栈

利用两个栈模拟队列 stack1,stack2 首先向stack1当中放入数据,如果需要输出数据,从stack2中delete数据,如果stack2为空,就把stack1中数据导入stack2 <span style="font-size:14px;">#include "static.h" #include <iostream> #include <stack> template<typename T> class