用栈实现N全排列的代码和实验报告.doc_第1页
用栈实现N全排列的代码和实验报告.doc_第2页
用栈实现N全排列的代码和实验报告.doc_第3页
用栈实现N全排列的代码和实验报告.doc_第4页
用栈实现N全排列的代码和实验报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-管理信息系统作业第2次作业第2组成员 序号学号姓名 任务成绩备注7201217010102何偲 程序设计998201217010103何玲玲程序设计999201217010104黄春媛程序设计、完成实验报告100组长10201217010105靳梦迪程序设计99一、小组问题1.对于本实验中栈顶元素可不可再变大的程序不会写。2.程序语法没有错但输出结果不对,找不出错误,不会调试。二、小组建议1.希望老师在我们绞尽脑筋都还没有解决问题的时候给我们提示一下,帮助我们转换思维,从而解决问题。2. 写出来的程序没有语法错误,但得出的结果也不对,但是不会调试,希望下次上课老师可以能用多讲解如何调试程序。三、小组总结拿到题目后,我们说了自己的理解,还提出了自己不懂的的部分来讨论,争取每一个组员能够对题目的做法有所了解。分析了题目我们就知道要创造哪几个类,由于可以用课堂上的代码,省去很多功夫,但是算法的逻辑太复杂,我们认真地研究好久后都没做出来,然后去请教了黄万艮老师,把思路想清,但是还是有一些判断条件不懂怎么写,后来老师在班群发的提示研究了许久终于弄出来了。这次的实验作业使我们更加熟练地操作和编写程序,每一次的作业都让我们学到不少的东西,也让我们知道自己的弱点所在,从而通过平时的练习来补自己的不足之处 。五、实验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.printl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论