简易停车场,栈实现,队列实现便道等待

package parkingSystemyyyy;
import java.util.*;
import static java.util.Calendar.*;
public class parkingSystemyyyy {
	static int ll=0;
	static int l=0;
	static int nns=0;
	static int nnns=0;
	static int bs=0;
	static int bss=0;
	static int bssss=0;
	static int bsss=0;
	static long kpo=0;
	static long kpoi=0;
	static int day1=0;
	/**
	 * 
	 * @author zhaoyijie
	 *
	 */
		public int upinteger(int a,int b){
			return (((double) a/(double) b)>(a/b)?a/b+1:a/b);		
		}
		public static void main(String[] args) {
			parkingSystemyyyy parkingsystem=new parkingSystemyyyy();
			StackLinked<Long> timearrive= new StackLinked<Long>();
			StackLinked<Long> timearriveHold= new StackLinked<Long>();
			Scanner scanner= new Scanner(System.in);
			System.out.println("欢迎来到计通学院停车场!");
			System.out.println("请输入停车场的容量");
			int x=scanner.nextInt();
			System.out.println("请输入停车场便道的容量");
			int y=scanner.nextInt();
			QueueArray<Integer> shortcutTail=new QueueArray<Integer>(y);
			StackLinked<Integer>CarTail=new  StackLinked<Integer>();
			StackLinked<Integer>CarTailHold=new  StackLinked<Integer>();
			 System.out.println("目前停车场停了"+ll+"辆车");
			 System.out.println("目前便道暂时停了"+l+"辆车");
			 System.out.println("*************************************");
			 System.out.print("*请选择:");
			 System.out.println("输入-1:手动输入模式                                                         *");
			 System.out.println("*输入一个任意数(必须为整数或者0):自动获取系统时间模式*");
			 System.out.println("*************************************");
			 int shijian=scanner.nextInt();
			 if(shijian==-1) {
				 System.out.println("**********************");
				 System.out.println("*    请输入操作                                 *");
				 System.out.println("*   1;停车                                          *");
				 System.out.println("*   2;出车                                          *");
				 System.out.println("*   3:查询停车场和便道的情况  *");
				 System.out.println("*   4;退出系统                                 *");
				 System.out.println("*   5;便道等待                                 *");
				 System.out.println("**********************");
				 int qqqq=0;
				 while(qqqq!=-1) {
				 int q=scanner.nextInt();
				switch(q) {
				 case 1:
					 if(ll==x){
						 System.out.println("停车场已满!请在便道等待。");
						 System.out.println("**********************");
						 System.out.println("*    请输入操作                                 *");
						 System.out.println("*   1;停车                                          *");
						 System.out.println("*   2;出车                                          *");
						 System.out.println("*   3:查询停车场和便道的情况  *");
						 System.out.println("*   4;退出系统                                 *");
						 System.out.println("*   5;便道等待                                 *");
						 System.out.println("**********************");
				         break;
						}
			   System.out.println("请输入停车的尾号(必须为整数或者0)");
			   int abc=scanner.nextInt();
			   CarTail.push(abc);
			   int z=0;
			   while(z!=-1) {
				   int day=0;
				System.out.println("请输入车的到达时间(年)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
				int year=scanner.nextInt();
				int nnp=Math.abs(year);
				year=nnp;
				System.out.println("请输入车的到达时间(月)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
				int month=scanner.nextInt();
				int nnnp=Math.abs(month);
				month=nnnp;
				System.out.println("请输入车的到达时间(日)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
				int a=scanner.nextInt();
				int as=Math.abs(a);
				a=as;
				System.out.println("请输入车的到达时间(小时)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
				int aa=scanner.nextInt();
				int ass=Math.abs(aa);
				aa=ass;
				System.out.println("请输入车的到达时间(分)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
				int aaa=scanner.nextInt();
				int asss=Math.abs(aaa);
				aaa=asss;
				System.out.println("请输入车的到达时间(秒)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
				int aaaa=scanner.nextInt();
				int assss=Math.abs(aaaa);
				aaaa=assss;
				if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
			          day=31;
			      if(month==4||month==6||month==9||month==11)
			         day=30;
			      if(month==2) {
			         if(((year%4==0)&&(year%100!=0))||(year%400==0))
			            day=29;
			         else
			            day=28;
			      }
				if((aa>=24)||(aaa>60)||(aaaa>60)||(a>day)||(month>12)) {
					System.out.println("您输入一个错误的时间,月份不能大于12,部分月份只有28天或者29天或者30天或31天,小时不能超过24,分钟不能超过60,秒数不能超过60");
					z=0;
				}
				else {
					 Calendar 日历=Calendar.getInstance();
				      日历.set(year,month,a,aa,aaa,aaaa);
				      long time7=日历.getTimeInMillis();
			           long aaaaa=time7/1000;
				timearrive.push(aaaaa);
				z=-1;
				}
			   }
			   ll++;
			     System.out.println("**********************");
				 System.out.println("*    请输入操作                                 *");
				 System.out.println("*   1;停车                                          *");
				 System.out.println("*   2;出车                                          *");
				 System.out.println("*   3:查询停车场和便道的情况  *");
				 System.out.println("*   4;退出系统                                 *");
				 System.out.println("*   5;便道等待                                 *");
				 System.out.println("**********************");
				  break;
				 case 5:
					 if(l==y) {
					 System.out.println("目前便道已满!不能停车");
					  break;
				}
					   System.out.println("请输入便道停车的尾号(必须为整数或者0)");
					   int abcd=scanner.nextInt();
					   shortcutTail.enQueue(abcd);
					   System.out.println("您已在便道等待");
					   Random random=new Random();
					   int one=(int)random.nextInt(3)+1;
					   System.out.println("如果您等待时间很无聊,我们将播放广告");
					   if(one==1) {
						   System.out.println("下面是广告时间");
						   System.out.println("广告:");
						   System.out.println("碧生源减肥茶是碧生源推出的减肥茶,是专门针对于女性所研发的产品。其成分为纯草本组方。不适宜人群为孕期及哺乳期妇女 及儿童/青少年。");  
					   }
					   if(one==2) {
						   System.out.println("下面是广告时间");
						   System.out.println("广告:");
						   System.out.println("木醋足贴是针对脚病患者而研制的一种外用药贴。"); 
						   System.out.println("1.木醋足贴通过对足底及相关经络反射区的作用,木醋精华等成分渗透并参与循环系统,通过部分药物,促进人体的微循环,新陈代谢.");
						   System.out.println("2.木醋有着除臭杀菌功效,能够有效的抑制脚部的病菌的生长,能够减轻湿气,起到保健的作用。3.木醋足贴的其他药物成分,都有着显著的医用功效。");
					   }
					   if(one==3) {
						   System.out.println("下面是广告时间");
						   System.out.println("广告:");
						   System.out.println("六味地黄丸,中成药名。为补益剂,具有滋阴补肾之功效。用于肾阴亏损,头晕耳鸣,腰膝酸软,骨蒸潮热,盗汗遗精,消渴。" );
		 System.out.println("六味地黄丸,同名方约有4首,现选宋代太医钱乙所著《小儿药证直诀》卷下“地黄丸”方。该方删减医圣张仲景著《金匮要略》中的肾气丸药方当中的附子与桂枝:");
		 System.out.println("熟地黄八钱,山萸肉、干山药各四钱,泽泻、牡丹皮、白茯苓(去皮)各三钱。上为末,炼蜜为丸,如梧桐子大。每服三丸,空心温水化下。六味地黄丸是一种广泛使用的方剂。");
		 System.out.println("中医学认为,六味地黄丸具有滋补肾阴的功能,适用于肾虚、头晕耳鸣、腰膝酸软、消渴、遗精等症。");
					   }
				    l++;
				     System.out.println("**********************");
					 System.out.println("*    请输入操作                                 *");
					 System.out.println("*   1;停车                                          *");
					 System.out.println("*   2;出车                                          *");
					 System.out.println("*   3:查询停车场和便道的情况  *");
					 System.out.println("*   4;退出系统                                 *");
					 System.out.println("*   5;便道等待                                 *");
					 System.out.println("**********************");
					  break;
				 case 2:
					 if(ll==0) {
						 System.out.println("停车场无车,无法出车");
						 System.out.println("**********************");
						 System.out.println("*    请输入操作                                 *");
						 System.out.println("*   1;停车                                          *");
						 System.out.println("*   2;出车                                          *");
						 System.out.println("*   3:查询停车场和便道的情况  *");
						 System.out.println("*   4;退出系统                                 *");
						 System.out.println("*   5;便道等待                                 *");
						 System.out.println("**********************");
						  break;
					 }
				         int zz=0;
						 System.out.println("请输入出车的尾号(必须为正整数或者0)");
						   int j=scanner.nextInt();
							 while(CarTail.getTop()!=j){
								 int d=CarTail.getTop();
								 CarTailHold.push(d);
								 CarTail.pop();
								 long dd=timearrive.getTop();
								 timearriveHold.push(dd);
								 timearrive.pop();
							 }
							 CarTail.pop();
						   while(zz!=-1) {
							System.out.println("请输入车的到达时间(年)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
							int year=scanner.nextInt();
							nns=Math.abs(year);
							year=nns;
							System.out.println("请输入车的到达时间(月)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
							int month=scanner.nextInt();
							nnns=Math.abs(month);
							month=nnns;
						    System.out.println("请输入车的离开时间(日)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
							int b=scanner.nextInt();
							bs=Math.abs(b);
							b=bs;
							System.out.println("请输入车的离开时间(小时)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
							int bb=scanner.nextInt();
							bss=Math.abs(bb);
							bb=bss;
							System.out.println("请输入车的离开时间(分)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
							int bbb=scanner.nextInt();
							bsss=Math.abs(bbb);
							bbb=bsss;
							System.out.println("请输入车的离开时间(秒)(必须为正整数或者0),如果你输入一个负数将强制转换为正整数");
							int bbbb=scanner.nextInt();
							bssss=Math.abs(bbbb);
							bbbb=bssss;
							if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
						          day1=31;
						      if(month==4||month==6||month==9||month==11)
						         day1=30;
						      if(month==2) {
						         if(((year%4==0)&&(year%100!=0))||(year%400==0))
						            day1=29;
						         else {
						            day1=28;
						         }
						      }
							kpo=timearrive.getTop();
							Calendar 日历1=Calendar.getInstance();
						      日历1.set(year,month,b,bb,bbb,bbbb);
						      long time7=日历1.getTimeInMillis();
					           long bbbbb=time7/1000;
							if((bbbbb<=kpo)||(bb>=24)||(bbb>60)||(bbbb>60)||(b>day1)||(month>12)) {
						System.out.println("您输入一个错误的时间,请输入车的离开日期(必须为正整数或者0)不能比到达时间还要早,月份不能大于12,部分月份只有28天或者29天或者30天或31天,小时不能超过24,分钟不能超过60,秒数不能超过60");
							zz=0;
							}
							else {
								kpoi=bbbbb;
								day1=0;
								timearrive.pop();
								zz=-1;
							}
						   }
						   int yy=(int) (kpoi-kpo);
							kpo=0;
					int yyy=parkingsystem.upinteger(yy, 3600);
					int yyyyy=yyy-(yy/86400)*24;
				 System.out.print("车的尾号"+j);
				if(yy>900){
					if((yyyyy*2)>14) {
						yyyyy=7;
					}
					System.out.print("目前的停车时间为:"+yyy+"小时,不够一个小时算一个小时");
					int k=(yy/86400)*14+yyyyy*2;
					System.out.println(","+"您应付款"+k+"元");
				}
				else{
					int hu=yy/60;int huj=yy-hu*60;
					System.out.println("您目前停车时间为:"+hu+"分"+huj+"秒"+"你停车未超过15分钟,所以,"+"您应付款"+"0元");
				}
				ll--;
				System.out.println("目前停车场的车辆为:"+ll);
				if(CarTailHold.getTop()!=null){
					int da=CarTailHold.getTop();
					CarTail.push(da);
					CarTailHold.pop();
					long ddd=timearriveHold.getTop();
					 timearrive.push(ddd);
					 timearriveHold.pop();
				}
			if(ll<x){
				if(!shortcutTail.isEmpty()){
				int ppp=shortcutTail.getFront();
				CarTail.push(ppp);
				shortcutTail.deQueue();
				System.out.println("在便道等待的车尾号为:"+ppp+"您目前到达时间为:"+nns+"年"+nnns+"月"+bs+"日"+bss+"小时"+bsss+"分"+bssss+"秒");
				 timearrive.push(kpoi);
				kpoi=0;	
				nns=0;
				nnns=0;
				bs=0;
				bss=0;
				bsss=0;
				bssss=0;
				ll++;
				l--;
				System.out.println("目前停车场的车辆为:"+ll);
				System.out.println("目前便道的车辆为:"+l);
			}
				else{
					System.out.println("便道无车停");
					l=0;
					System.out.println("目前停车场的车辆为:"+ll);
					System.out.println("目前便道的车辆为:"+l);
				}
				}
			 System.out.println("**********************");
			 System.out.println("*    请输入操作                                 *");
			 System.out.println("*   1;停车                                          *");
			 System.out.println("*   2;出车                                          *");
			 System.out.println("*   3:查询停车场和便道的情况  *");
			 System.out.println("*   4;退出系统                                 *");
			 System.out.println("*   5;便道等待                                 *");
			 System.out.println("**********************");
			  break;
				 case 3:
					 System.out.println("目前停车场停了"+ll+"辆车");
					 System.out.println("目前便道暂时停了"+l+"辆车");
					 System.out.println("**********************");
					 System.out.println("*    请输入操作                                 *");
					 System.out.println("*   1;停车                                          *");
					 System.out.println("*   2;出车                                          *");
					 System.out.println("*   3:查询停车场和便道的情况  *");
					 System.out.println("*   4;退出系统                                 *");
					 System.out.println("*   5;便道等待                                 *");
					 System.out.println("**********************");
					  break;
				 default:
						System.out.println("请输入操作!");	
						break;
					 case 4:
					qqqq=-1;
					System.out.println("您已经退出系统,谢谢惠顾!");
			 }		
}
}
			 if(shijian!=-1) {
				 System.out.println("**********************");
				 System.out.println("*    请输入操作                                 *");
				 System.out.println("*   1;停车                                          *");
				 System.out.println("*   2;出车                                          *");
				 System.out.println("*   3:查询停车场和便道的情况  *");
				 System.out.println("*   4;退出系统                                 *");
				 System.out.println("*   5;便道等待                                 *");
				 System.out.println("**********************");
				 int qqqq=0;
				 while(qqqq!=-1) {
				 int q=scanner.nextInt();
				Object second;
				switch(q) {
				 case 1:
					 if(ll==x){
						 System.out.println("停车场已满!请在便道等待。");
						  break;
						}
			   System.out.println("请输入停车的尾号(必须为整数或者0)");
			   int abc=scanner.nextInt();
			   CarTail.push(abc);
			   Calendar calendar=Calendar.getInstance();
			   calendar.setTime(new Date());       
			      int  年=calendar.get(YEAR),
			           月=calendar.get(MONTH)+1,
			           日=calendar.get(DAY_OF_MONTH);
			           int hour=calendar.get(HOUR_OF_DAY);
			             int  minute=calendar.get(MINUTE);
			             int  second1=calendar.get(SECOND);
			               System.out.println("您目前到达的时间为:");
			           System.out.print(""+年+"年"+月+"月"+日+"日 ");
			           System.out.println(" "+hour+"时"+minute+"分"+second1+"秒");
			           long time2=calendar.getTimeInMillis();
			           long time3=time2/1000;
			           timearrive.push(time3);
			   ll++;
			     System.out.println("**********************");
				 System.out.println("*    请输入操作                                 *");
				 System.out.println("*   1;停车                                          *");
				 System.out.println("*   2;出车                                          *");
				 System.out.println("*   3:查询停车场和便道的情况  *");
				 System.out.println("*   4;退出系统                                 *");
				 System.out.println("*   5;便道等待                                 *");
				 System.out.println("**********************");
				  break;
				 case 5:
					 if(l==y) {
					 System.out.println("目前便道已满!不能停车");
					  break;
				}
					   System.out.println("请输入便道停车的尾号(必须为整数或者0)");
					   int abcd=scanner.nextInt();
					   shortcutTail.enQueue(abcd);
					   System.out.println("您已在便道等待");
					   Random random=new Random();
					   int one=(int)random.nextInt(3)+1;
					   System.out.println("如果您等待时间很无聊,我们将播放广告");
					   if(one==1) {
						   System.out.println("下面是广告时间");
						   System.out.println("广告:");
						   System.out.println("碧生源减肥茶是碧生源推出的减肥茶,是专门针对于女性所研发的产品。其成分为纯草本组方。不适宜人群为孕期及哺乳期妇女 及儿童/青少年。");  
					   }
					   if(one==2) {
						   System.out.println("下面是广告时间");
						   System.out.println("广告:");
						   System.out.println("木醋足贴是针对脚病患者而研制的一种外用药贴。"); 
						   System.out.println("1.木醋足贴通过对足底及相关经络反射区的作用,木醋精华等成分渗透并参与循环系统,通过部分药物,促进人体的微循环,新陈代谢.");
						   System.out.println("2.木醋有着除臭杀菌功效,能够有效的抑制脚部的病菌的生长,能够减轻湿气,起到保健的作用。3.木醋足贴的其他药物成分,都有着显著的医用功效。");
					   }
					   if(one==3) {
						   System.out.println("下面是广告时间");
						   System.out.println("广告:");
						   System.out.println("六味地黄丸,中成药名。为补益剂,具有滋阴补肾之功效。用于肾阴亏损,头晕耳鸣,腰膝酸软,骨蒸潮热,盗汗遗精,消渴。" );
		 System.out.println("六味地黄丸,同名方约有4首,现选宋代太医钱乙所著《小儿药证直诀》卷下“地黄丸”方。该方删减医圣张仲景著《金匮要略》中的肾气丸药方当中的附子与桂枝:");
		 System.out.println("熟地黄八钱,山萸肉、干山药各四钱,泽泻、牡丹皮、白茯苓(去皮)各三钱。上为末,炼蜜为丸,如梧桐子大。每服三丸,空心温水化下。六味地黄丸是一种广泛使用的方剂。");
		 System.out.println("中医学认为,六味地黄丸具有滋补肾阴的功能,适用于肾虚、头晕耳鸣、腰膝酸软、消渴、遗精等症。");
					   }
				    l++;
				     System.out.println("**********************");
					 System.out.println("*    请输入操作                                 *");
					 System.out.println("*   1;停车                                          *");
					 System.out.println("*   2;出车                                          *");
					 System.out.println("*   3:查询停车场和便道的情况  *");
					 System.out.println("*   4;退出系统                                 *");
					 System.out.println("*   5;便道等待                                 *");
					 System.out.println("**********************");
					  break;
				 case 2:
					 if(ll==0) {
						 System.out.println("停车场无车,无法出车");
						 System.out.println("**********************");
						 System.out.println("*    请输入操作                                 *");
						 System.out.println("*   1;停车                                          *");
						 System.out.println("*   2;出车                                          *");
						 System.out.println("*   3:查询停车场和便道的情况  *");
						 System.out.println("*   4;退出系统                                 *");
						 System.out.println("*   5;便道等待                                 *");
						 System.out.println("**********************");
						  break;
					 }
						 System.out.println("请输入出车的尾号(必须为正整数或者0)");
						 int j=scanner.nextInt();
						
							 while(CarTail.getTop()!=j){
								 int d=CarTail.getTop();
								 CarTailHold.push(d);
								 CarTail.pop();
								long dd=timearrive.getTop();
								 timearriveHold.push(dd);
								 timearrive.pop();
							 }
							 CarTail.pop();
							 Calendar calendar1=Calendar.getInstance();
							 calendar1.setTime(new Date());       
						      int  年1=calendar1.get(YEAR),
						           月1=calendar1.get(MONTH)+1,
						           日1=calendar1.get(DAY_OF_MONTH);
						           int hour1=calendar1.get(HOUR_OF_DAY);
						            int   minute1=calendar1.get(MINUTE);
						               int second2 = calendar1.get(SECOND);
						               System.out.println("您离开的时间为:");
						           System.out.print(""+年1+"年"+月1+"月"+日1+"日 ");
						           System.out.println(" "+hour1+"时"+minute1+"分"+second2+"秒");
						           long time4=calendar1.getTimeInMillis();
						           long time5=time4/1000;
						           kpoi=time5;
						           kpo=timearrive.getTop();
						           timearrive.pop();
						   int yy=(int) (kpoi-kpo);
							kpo=0;
					int yyy=parkingsystem.upinteger(yy, 3600);
					int yyyyy=yyy-(yy/86400)*24;
				 System.out.print("车的尾号"+j);
				if(yy>900){
					if((yyyyy*2)>14) {
						yyyyy=7;
					}
					System.out.print("目前的停车时间为:"+yyy+"小时,不够一个小时算一个小时");
					int k=(yy/86400)*14+yyyyy*2;
					System.out.println(","+"您应付款"+k+"元");
				}
				else{
					int hu=yy/60;int huj=yy-hu*60;
					System.out.println("您目前停车时间为:"+hu+"分"+huj+"秒"+"你停车未超过15分钟,所以,"+"您应付款"+"0元");
				}
				ll--;
				System.out.println("目前停车场的车辆为:"+ll);
				if(CarTailHold.getTop()!=null){
					int da=CarTailHold.getTop();
					CarTail.push(da);
					CarTailHold.pop();
					Long ddd=timearriveHold.getTop();
					 timearrive.push(ddd);
					 timearriveHold.pop();
				}
			if(ll<x){
				if(!shortcutTail.isEmpty()){
					int ppp=shortcutTail.getFront();
				CarTail.push(ppp);
				shortcutTail.deQueue();
				System.out.println("在便道等待的车尾号为:"+ppp+"您目前到达的时间为:");
				 System.out.print(""+年1+"年"+月1+"月"+日1+"日 ");
		           System.out.println(" "+hour1+"时"+minute1+"分"+second2+"秒");
				 timearrive.push(kpoi);
				kpoi=0;	
				ll++;
				l--;
				System.out.println("目前停车场的车辆为:"+ll);
				System.out.println("目前便道的车辆为:"+l);
			}
				else{
					System.out.println("便道无车停");
					l=0;
					System.out.println("目前停车场的车辆为:"+ll);
					System.out.println("目前便道的车辆为:"+l);
				}
				}
			 System.out.println("**********************");
			 System.out.println("*    请输入操作                                 *");
			 System.out.println("*   1;停车                                          *");
			 System.out.println("*   2;出车                                          *");
			 System.out.println("*   3:查询停车场和便道的情况  *");
			 System.out.println("*   4;退出系统                                 *");
			 System.out.println("*   5;便道等待                                 *");
			 System.out.println("**********************");
			  break;
				 case 3:
					 System.out.println("目前停车场停了"+ll+"辆车");
					 System.out.println("目前便道暂时停了"+l+"辆车");
					 System.out.println("**********************");
					 System.out.println("*    请输入操作                                 *");
					 System.out.println("*   1;停车                                          *");
					 System.out.println("*   2;出车                                          *");
					 System.out.println("*   3:查询停车场和便道的情况  *");
					 System.out.println("*   4;退出系统                                 *");
					 System.out.println("*   5;便道等待                                 *");
					 System.out.println("**********************");
					  break;
				 default:
						System.out.println("请输入操作!");	
						break;
					 case 4:
					qqqq=-1;
					System.out.println("您已经退出系统,谢谢惠顾!");		
			 }
			 
		}
}
	System.out.println("请您对本次停车服务点评,五星为很满意!(输入大于5的数转化为5,输入小于0的数转化为0)");
	int u=scanner.nextInt();
	if(u>5) {
		 u=5;
		}
		if(u<0) {
		 u=0;
		 }
	System.out.println("请您对本次停车服务点评为"+u+"星"+","+"谢谢您对本停车场的大力支持,欢迎您在下次光临!");
		}
}





package parkingSystemyyyy;
public class QueueArray<T>{
	private int capacity;
	public Object[] elements;
	private int front;
	private int rear;
		public  QueueArray(int capacity){
			this.capacity=capacity;
			elements=new Object[capacity];
			front=0;
			rear=0;
}
		public int getSize(){
			return (rear-front+capacity)%capacity;
		}
		public boolean isEmpty(){
			return (front==rear)?true:false;
		}
		public boolean isFull(){
			return ((rear+1)%capacity==front)?true:false;
		}
		public void enQueue(T e){
			if((rear+1)%capacity==front)
				expandSpace();
			    elements[rear]=e;
				rear=(rear+1)%capacity;

		}
		private void expandSpace(){
			Object[]a=new Object[elements.length*2];
			int i=front;int j=0;
			while (i!=rear){
				a[j++]=elements[i];
				i=(i+1)%capacity;
			}
			elements=a;
			capacity=elements.length;
			front=0;rear=j;
		}
			
			
	    public boolean deQueue(){
	    	if(rear==front){
	    		System.out.println("空队列!无法出队");
	    		return false;
	    	}
	    	else{
	    		elements[front]=null;
	    		front=(front+1)%capacity;
	    		return true;
	    	}
	    }
	    public T getFront(){
	     	if(rear==front){
	    		System.out.println("空队列,无队头!");
	    	}
	    	return (T)elements[front];
	    }
}




package parkingSystemyyyy;
public class StackLinked<T>{
public StackLinkedNode<T> top;
public StackLinked(){
top=new StackLinkedNode<T>();
top.setData(null);
top.setNext(null);
}
public void push(T e) {
	StackLinkedNode<T>p=new StackLinkedNode<T>();
	p.setData(e);
	p.setNext(top.getNext());
	top.setNext(p);
}
public boolean pop(){
	if(top.getNext()==null){
		System.out.printf("栈空,无法出栈!");
		return false;
	}
	StackLinkedNode<T>p=top.getNext();
	top.setNext(p.getNext());
	return true;
}
public T getTop(){
	if(top.getNext()==null){
		System.out.print("");
		return(null);
	}
	StackLinkedNode<T>p=top.getNext();
	return(p.getData());
}
}




package parkingSystemyyyy;
public class StackLinkedNode<T>{
private T data;
private StackLinkedNode<T>next;
public T getData(){
return data;
}
public void setData(T data){
	this.data=data;
}
public StackLinkedNode<T>getNext(){
	return next;
}
public void setNext(StackLinkedNode<T>next) {
 this.next=next;
}
}

小白,写得可能不好,勿喷。皮一下,便道等待卖一下广告。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值