栈的先进后出的算法演示程序.doc

栈的先进后出的算法演示程序.doc

ID:57578751

大小:39.00 KB

页数:5页

时间:2020-08-27

栈的先进后出的算法演示程序.doc_第1页
栈的先进后出的算法演示程序.doc_第2页
栈的先进后出的算法演示程序.doc_第3页
栈的先进后出的算法演示程序.doc_第4页
栈的先进后出的算法演示程序.doc_第5页
资源描述:

《栈的先进后出的算法演示程序.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,然后把两个栈里的数据全部弹出。于是输出结果就

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。