Java是一种流行的编程语言,提供了很多数据结构,其中栈和队列是两种常用的数据结构。这两个数据结构就可以实现停车系统,下面我们来看看。
堆栈是后进先出(LIFO)数据结构。我们可以利用堆栈来实现停车系统。假设停车场只能停3辆车,那么我们可以用长度为3的数组来模拟一个栈。数组的最后一个元素是栈顶,第一个元素是栈底。
公共课停车场{ 私有静态最终 int MAX_SIZE = 3; 私有字符串[]汽车=新字符串[MAX_SIZE]; 私有 int 顶部 = -1; 公共空白公园(串车){ 如果(顶部== MAX_SIZE - 1){ System.out.println("停车场已满"); 返回; } 顶部++; 汽车[顶部]=汽车; System.out.println("车辆" + 汽车 + "停在车位上" + (top + 1)); } 公共无效离开(字符串汽车){ 如果(顶部==-1){ System.out.println("停车场没有车辆"); 返回; } for (int i = 顶部; i >= 0; i--) { if (cars[i].equals(car)) { System.out.println("车辆" + car + "已离开车位" + (i + 1)); 汽车[i] = null; 顶部 = i - 1; 返回; } } System.out.println("停车场没有车辆" + car); } }
这里我们定义了一个类,其中包含两个方法:停车和离开。 Park方法用于车辆停入停车场,Leave方法用于车辆离开停车场。
队列是先进先出(FIFO)数据结构。我们还可以使用队列来实现停车系统。
公共课停车场{ 私有静态最终 int MAX_SIZE = 3; 私有字符串[]汽车=新字符串[MAX_SIZE]; 私有 int 头; 私有 int 尾部; 私有 int 大小; 公共空白公园(串车){ 如果(大小== MAX_SIZE){ System.out.println("停车场已满"); 返回; } 汽车[尾]=汽车; 尾部 = (尾部 + 1) % MAX_SIZE; 尺寸++; System.out.println("车辆" + 汽车 + "停在车位上" + size); } 公共无效离开(字符串汽车){ 如果(大小== 0){ System.out.println("停车场没有车辆"); 返回; } for (int i = head; i< head + size; i++) { int 索引 = i % MAX_SIZE; if (cars[index].equals(car)) { System.out.println("车辆" + car + "已离开车位" + (index + 1)); 汽车[索引] = null; 尺寸 - ; 头 = (头 + 1) % MAX_SIZE; 返回; } } System.out.println("停车场没有车辆" + car); } }
我们定义了一个类,它和栈的实现类似,只不过我们使用的是循环队列。当队列末尾到达数组的最后一个元素时,下一个插入的元素应该是数组的第一个元素。