至此,数据结构中最基础的三个(表、栈、队列)已经结束了,由于栈和队列也是基于表结构,所以他们均可以使用数组或者链表实现,如果你可以自行实现动态数组和单链表那么基本的栈和队列你一定可以自行实现;
栈的特点:
LIFO(last in first out,即先进后出),也就是说最先插入的数据只能最后被删除或访问,对于之前实现的动态数组和链表而言,只需要隐藏掉一些方法即可,例如MyArrayList,插入和删除方面只提供add(0,E),remove(size-1)方法;
队列的特点:
LILO(last in first out,即先进先出),最先插入的数据只能最先访问;
作者闲来无事,结合GUI编程实现了一个简单的停车场应用,使用了栈和队列两种方式来保存入库的车辆;
效果图如下:
应用一共分8个类,一个img文件夹保存使用到的图片。
App类:程序入口;
BaseList接口:提供基本操作方法规范;
Car类:汽车类,提供汽车基本属性;
CarFrame:程序窗口类;
CarPanel:程序面板类,绘制图片和字符串;
MyArrayQueue类:基于数组实现的列队;
MyLinkedQueue类:基于链表实现的队列;
MyLinkedStack类:基于链表实现的栈;
百度网盘链接(只提供了图片和源文件,请自行复制至IDE工具):
https://pan.baidu.com/s/1-KjErCv20sJlEJIUP_cq9w