东北大学-软件学院-大二数据结构-停车场模拟

2024-04-08 11:08

本文主要是介绍东北大学-软件学院-大二数据结构-停车场模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Stack;/*** @author csk*/
public class ParkingLot {class Car {/*** licence:牌照,如:'TUE-87B'* moveTimes:移动次数*/String licence;int moveTimes;Car(String licence) {this.licence = licence;this.moveTimes = 0;}String getLicence() {return licence;}int getMoveTimes() {return moveTimes;}void moveCar() {moveTimes++;}}public static void main(String[] args) throws IOException {new ParkingLot().parkingLotSimulation();}void parkingLotSimulation() throws IOException {BufferedReader br = new BufferedReader(new FileReader("data.txt"));StringBuilder sb = new StringBuilder();String s;//stack1模拟停车场Stack<Car> stack1 = new Stack<>();//最大停车位数 (从data.txt可以得知为5,数出来的)int maxNumber = 5;int count = 0;while ((s = br.readLine()) != null) {String[] array = s.split(" ");//车辆停入功能的实现if ("arrives".equals(array[1])) {count++;//最大停车数为5,超过则拒绝停入if (count > maxNumber) {System.out.println("Sorry " + array[0] + ", the lot is full");count--;continue;}Car newCar = new Car(array[0]);//车停入stack1.push(newCar);}//车辆开出功能的实现//Stack2用来存放暂时挪出停车场的车辆Stack<Car> stack2 = new Stack<>();//若栈顶的车辆不是要出去的车辆,则将出去车辆前的所有车辆移出并存入stack2if ("departs".equals(array[1])) {try {while (!stack1.peek().getLicence().equals(array[0])) {stack1.peek().moveCar();stack2.push(stack1.peek());stack1.pop();}if (stack1.peek().getLicence().equals(array[0])) {System.out.println(stack1.peek().getLicence() + " was moved " + stack1.peek().getMoveTimes() + " times while it was here");stack1.pop();count--;while (!stack2.empty()) {//待要出去的车辆移出后,还要将stack2暂存的车辆再重新移入停车场(即stack1)stack1.push(stack2.peek());stack2.pop();}}}catch (Exception e){System.out.println("Illegal input file!");};}}//停车场剩余车辆未出车辆,输入移动次数while (!stack1.empty()) {System.out.println(stack1.peek().getLicence() + " was moved "+ stack1.peek().getMoveTimes() + " times while it was here");stack1.pop();}br.close();}
}

使用了java

这篇关于东北大学-软件学院-大二数据结构-停车场模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885417

相关文章

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

hdu4431麻将模拟

给13张牌。问增加哪些牌可以胡牌。 胡牌有以下几种情况: 1、一个对子 + 4组 3个相同的牌或者顺子。 2、7个不同的对子。 3、13幺 贪心的思想: 对于某张牌>=3个,先减去3个相同,再组合顺子。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOExcepti

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In