题一:某堆栈里有n个数字,也许有零,请把非零数字按次序排列放在堆栈前面,零放后面。题二:n个人围坐一圆桌边,从第s(s>=1)个人开始数,数到m的人离开,接在其后的人从1开始数,数到m的人离开,如此循环,直到最后一人,请用程序表示离开人的次序。诸位大侠,不吝赐教,多谢多谢!!!
解决方案 »
- java jni调用winAPI
- 求解
- 新版本jdk中Integer的问题
- 新手奇怪的问题!!!----“开头的 标识符 太长。最大长度为 128???”
- 怎么得到System.out.println的内容
- Exception in thread "main" java.lang.NullPointerException 错误,请帮忙解决一下。我初学,讲白一点哦。
- 各位老大,在java画板里放大图片怎么让它不失真??
- 如果一个jar包执行需要其他的jar,在manifest文件怎么写呢?
- 请问JAVA可用来做什么?是不是只能作网站?
- 两个人同时对数据库进行更新操作,会成功执行吗?新手求助
- 请求关于Visual J++6.0实现软件测试
- 点击菜单项,让它弹出另一个窗口,该如何做?
第一个问题就不说了
第二个问题用循环双向链表
简单写一下,共两个类,抛砖引玉1,链表结点Person.java
===================================================================
package com.monipc.csdn;
public class Person {
private String name;
private Person pre;
private Person next;
public void setName(String name){this.name=name;}
public void setPre(Person pre){this.pre = pre;}
public void setNext(Person next){this.next = next;}
public String getName(){return this.name;}
public Person getPre(){return this.pre;}
public Person getNext(){return this.next;}
public String toString(){return this.getName();}
}
===================================================================
2,测试类Test.java
===================================================================
package com.monipc.csdn;public class Test {
private int n=10;//共n个人
private int m=3;//数到m
private int s=21;//从第s个人数起
private Person [] duLinkList = new Person[n];//循环双向链表
/**
* 初始化双向循环链表
*/
public void initDuLinkList(){
/*第一步:先将只有数据域的person加入列表*/
for(int i=0;i<n;i++){
Person person = new Person();
person.setName("Person-"+i);
this.duLinkList[i]=person;
}
/*第二步:再初始化前驱和后继*/
for(int i=0;i<n;i++){
int h = i-1;
int j = i+1;
h= h==-1 ? n-1 : h;
j= j==n ? 0 : j;
Person pre = (Person)this.duLinkList[h];
Person cur = (Person)this.duLinkList[i];
Person next = (Person)this.duLinkList[j];
cur.setPre(pre);
cur.setNext(next);
}
}
/**
* 开始数
*/
public void start(){
int j = s;
j= j>=n ? j%n : j;
Person start = (Person)this.duLinkList[j-1];
Person cur = start;
System.out.println("离开顺序:");
for(int a=0;a<n;a++){
for(int i=0;i<m;i++,j++){
Person pre = cur.getPre();
Person next = cur.getNext();
if(i==m-1) {
System.out.println(cur);
pre.setNext(next);
next.setPre(pre);
start = next;
}
cur = cur.getNext();
}
}
}
public static void main(String args []){
Test test = new Test();
test.initDuLinkList();
test.start();
}
}
===================================================================
大家感觉这个能用的话,支持一下本人的论坛:bbs.monipc.com,谢谢