




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件开发项目合同6篇
- 2025年下半年国家测绘地理信息局重庆测绘院招聘13人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年国家广播电视总局监管中心招聘高校毕业生17人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年国家公安部直属事业单位招录人民警察及工作人员696人笔试易考易错模拟试题(共500题)试卷后附参考答案
- 进口柑桔购销合同6篇
- 2025年中国异丙基擦拭酒精行业市场分析及投资价值评估前景预测报告
- 2025年下半年国中康健集团限公司第一批高校毕业生招聘【105人】事业单位易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年四川雅安市政府应急指挥中心公招工作人员公易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年四川遂宁经开区部分事业单位招聘工作人员73人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年四川省政府直属事业单位招聘易考易错模拟试题(共500题)试卷后附参考答案
- 水利工程监理部主要工作制度(依据2014版监理规范编写)
- 2025浙江版八年级科学下册知识梳理(详细版)
- 老舍《茶馆》三幕话剧剧本
- 2025年南京铁道职业技术学院单招职业技能测试题库附答案
- 产教融合视域下高职人才培养质量多元协同评价体系的探索与实践
- 《社区思想政治教育研究的国内外文献综述》4300字
- GB/T 8232-2024粟
- 【MOOC】走进舞蹈艺术-首都师范大学 中国大学慕课MOOC答案
- 村级硬化道路报告范文
- 四年级上册语文 课外阅读专项练习
- 植物医生诊病指南知到智慧树章节测试课后答案2024年秋甘肃农业大学
评论
0/150
提交评论