欢迎来到天天文库
浏览记录
ID:57578751
大小:39.00 KB
页数:5页
时间:2020-08-27
《栈的先进后出的算法演示程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、栈的先进后出的算法演示程序楼主ysycrazy(风中狂)2006-03-2915:08:25在Java/J2SE/基础类提问/*栈的先进后出的算法演示程序,请各位大侠指教。*/publicclassThreadTest{publicstaticvoidmain(String[]args){//从命令行参数中获得该栈的大小MyStackst=newMyStack(newInteger(args[0]).intValue());newThread(newProducer(st)).start();newThread(newCustomer
2、(st)).start();}}classMyStack//栈{char[]data;privateintindex=0;privatebooleanbFull=false;publicMyStack(intsize){data=newchar[size];}publicsynchronizedvoidpushData(charc)//往栈中推数据{if(bFull){try{this.wait();}catch(Exceptione){};}data[index]=c;try{Thread.sleep(300);}catch(Int
3、erruptedExceptionie){ie.printStackTrace();}index++;System.out.println("把字符'"+c+"'推入栈中");if(index==data.length){bFull=true;}if(bFull){this.notify();}}publicsynchronizedcharpopData()//从栈中取数据{if(!bFull){try{this.wait();}catch(Exceptione){e.printStackTrace();};}charc;inde
4、x--;try{Thread.sleep(300);}catch(InterruptedExceptionie){ie.printStackTrace();}c=data[index];System.out.println("从栈中取出字符'"+c+"'");if(index==0){bFull=false;}if(!bFull){this.notify();}returnc;}}classProducerimplementsRunnable{MyStackst;publicProducer(MyStackst){this.st=
5、st;}publicvoidrun(){while(true){st.pushData((char)(Math.random()*26+'A'));}}}classCustomerimplementsRunnable{MyStackst;publicCustomer(MyStackst){this.st=st;}publicvoidrun(){while(true){st.popData();}}}JAVA堆栈问题1悬赏分:0-解决时间:2006-9-1210:10classStack{privateintstck[]=newint[
6、10];privateinttos;Stack(){tos=-1;}voidpush(intitem){if(tos==9)System.out.println("Stackisfull");elsestck[++tos]=item;}intpop(){if(tos<0){System.out.println("Stackunderflow");return0;}elsereturnstck[tos--];}}classTestStack{publicstaticvoidmain(Stringargs[]){Stackmystack1
7、=newStack();Stackmystack2=newStack();for(inti=0;i<10;i++)mystack1.push(i);for(inti=10;i<20;i++)mystack2.push(i);System.out.println("出栈1");for(inti=0;i<10;i++)System.out.println(mystack1.pop());System.out.println("出栈2");for(inti=0;i<10;i++)System.out.println(mystack2.pop
8、());}}前面方法里压栈只写到9,而后面都出来10到20,为什么还可以提问者:腾睿-助理二级最佳答案因为测试程序构造了两个栈,第一个栈压进了0-9,第二个栈压进了10-19,然后把两个栈里的数据全部弹出。于是输出结果就
此文档下载收益归作者所有