Java棧和隊列是兩種非常常見的數據結構,可以用來實現停車場的管理。在停車場中,來車需要停入車位,而離開時需要根據先進先出的原則進行處理。Java棧和隊列正好符合這種處理規則。
首先,棧可以用來存儲車輛信息。當有新車進入停車場時,將其入棧,相當于將車輛信息存儲在棧中。而當有車輛需要離開時,它將從棧頂彈出,也就是先進后出的原則,符合離開順序。
public class ParkingLot { private StackcarStack; public ParkingLot() { carStack = new Stack (); } public void enter(String carNo) { carStack.push(carNo); } public String leave() { if (carStack.empty()) return null; return carStack.pop(); } }
而隊列則可以用來存儲可用車位情況。當有車輛進入停車場時,需要檢查是否有可用車位。如果有,則將其出隊,對應車位便被占用。而當有車輛離開時,該車位需要重新加入隊列尾部,表示該車位已經空出。
public class ParkingLot { private QueueavailableLots; public ParkingLot(int capacity) { availableLots = new LinkedList (); for (int i = 1; i<= capacity; i++) availableLots.add(i); } public int enter() { if (availableLots.isEmpty()) return -1; return availableLots.poll(); } public void leave(int lotNo) { availableLots.add(lotNo); } }
Java的棧和隊列可以很好地完成停車場管理的任務,能夠實現車輛的進出、車位的占用和釋放等操作。同時,Java棧和隊列還有其他的應用場景,在編程中的重要性十分突出。