




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用栈求n个元素的所有排列1.实验目的熟悉栈的ADT以及它的方法实现,学会用栈的方法去解决一些问题。2.实验要求求n个元素的所有排列,要求:使用栈。例如n=3时得:123、132、213、231、312、321 3.算法设计public void pailie(int n)ArrayStack stack=new ArrayStack();for(int a=1;a=n;a+)stack.push(a); System.out.println(stack.toString(); boolean back=false;while(!stack.isEmpty()&!back) int i=stack.pop();for(;in;i+) if(!stack.find(i+1) stack.push(i+1);for(int j=1;jn+1;j+) if(!stack.find(j)stack.push(j); System.out.println(stack.toString(); back=false;break; 4.软件结构 5.程序清单1.StackADT:import java.util.EmptyStackException;public interface StackADT public int size();public boolean isEmpty();public void push(int n);public int pop()throws EmptyStackException;public int peek();public String toString();2.ArrayStack:import java.util.EmptyStackException;public class ArrayStack implements StackADTprivate Object stack; public int top ; private final int DEFAULT_CAPACITY=20;public ArrayStack()stack=new Object DEFAULT_CAPACITY;top=-1;public ArrayStack(int size)stack =new Object size;top=-1;public int size()return top+1;public boolean isEmpty()return top=-1;public void push(int n)if(top+1=stack.length)expandCapacity(); stack+top=n; private void expandCapacity() Object newstack=new Objectstack.length*2+1;for(int i=0;itop;i+)newstacki=stacki;stack=newstack;public int pop()throws EmptyStackExceptionif(top=-1)throw new EmptyStackException();return (Integer)stacktop-;public int peek() return (Integer) stacktop;public String toString()String string=;for(int i=0;i=top;i+)string=string+stacki.toString();return string;public boolean find(int k) boolean result=false; for(int i=0;i=top;i+) if(k= (Integer)stacki) result=true;break; return result; 3.Expression:public class Expressionpublic void pailie(int n)ArrayStack stack=new ArrayStack();for(int a=1;a=n;a+)stack.push(a); System.out.println(stack.toString(); boolean back=false;while(!stack.isEmpty()&!back) int i=stack.pop();for(;in;i+) if(!stack.find(i+1) stack.push(i+1);for(int j=1;jn+1;j+) if(!stack.find(j)stack.push(j); System.out.println(stack.toString(); back=false;break; 4.TEST:import java.util.Scanner;public class TEST public static void main(String args) Scanner input=new Scanner(System.in);System.out.println(please input an integer:);int n=input.nextInt();System.out.println(当n=+n+时,所有排列如下:);Express
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025房地产项目室内外装饰设计施工监理合同
- 2025年中小企业融资连带担保合同范本
- 2025年度图书馆图书采购与可持续发展合同
- 2025年风力发电场电线电缆配套供应协议
- 2025版历史遗迹拆除与文化遗产保护合同范本
- 2025年度高新技术项目融资服务合同范本二
- 2025年度塑料包装袋环保回收利用采购合同
- 2025版新型节能电器贴牌生产销售合同
- 2025年二层商铺楼房租赁合同及商业地产市场调研与分析服务协议
- 2025年度健身房室内涂料施工协议
- 高产小麦品种介绍
- HemiView森林冠层图像分析系统
- 创新方法教程题库题库(449道)
- 建设工程消防验收评定规则
- 山东省临沂市兰山区2022-2023学年小升初数学自主招生备考卷含答案
- 电气设备交接试验方案
- D500-D505 2016年合订本防雷与接地图集
- 北邮社电机拖动与调速技术教学包课后题解
- 学校门卫岗位职责及管理制度
- JJG 1105-2015氨气检测仪
- GB/T 17421.7-2016机床检验通则第7部分:回转轴线的几何精度
评论
0/150
提交评论