永发信息网

数据结构 链栈问题(java语言)

答案:1  悬赏:10  手机版
解决时间 2021-05-01 20:03
  • 提问者网友:孤凫
  • 2021-04-30 20:28

利用链栈来实现把一个10进制数转换成一个8进数.我写了一些前面应该都是对的,我就是不知道怎么来把n%8的余数储存在栈里 最后出栈.下面看看我的代码嘛.谢谢了,!!

import java.io.*;
public class StackNode {//定义链栈类
int data; //定义存放数据
StackNode next; //链接的下一个节点
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public StackNode getNext() {
return next;
}
public void setNext(StackNode next) {
this.next = next;
}
}
class LinkStack{ //定义链表
StackNode top;
boolean empty(){//空栈
return top==null;
}
StackNode push(StackNode S){//压栈
S.next=top;
top=S;
return top;
}
StackNode pop(){//出栈
if(empty()){
System.out.print("Stack undedow");
}
StackNode sn=top;
top=top.next;
return top;
}
public static void main(String[] args)throws IOException {
// TODO Auto-generated method stub
LinkStack LS=new LinkStack();
int b[]=new int[5];
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String sr;
int n;
System.out.print("请输入n:(n<=30000)");
sr=in.readLine();
n=Integer.parseInt(sr);
if( n>8){
System.out.println( "你输入的数字为:"+n);
while(n!=0){ //写不来了,不知道怎么来把n%8的余数储存在栈里
//LS.push( n%8); //最后怎么把他们出栈打印出来.
n=n/8;
}

}

}

}

最佳答案
  • 五星知识达人网友:轻雾山林
  • 2021-04-30 21:49

1、StackNode需要一个构造方法


import java.io.*;


public class StackNode {//定义链栈类



public StackNode(int data) {
this.data = data;
}
int data; //定义存放数据


StackNode next; //链接的下一个节点



public int getData() {
return data;
}


public void setData(int data) {
this.data = data;
}


public StackNode getNext() {
return next;
}


public void setNext(StackNode next) {
this.next = next;
}
}


2、LinkStack的pop方法有问题应为


StackNode pop() {//出栈


if (empty()) {
System.out.print("Stack undedow");
}
StackNode sn = top;
top = top.next;
return sn;
}


3、main方法


if (n > 8) {
System.out.println("你输入的数字为:" + n);
while (n != 0) { //写不来了,不知道怎么来把n%8的余数储存在栈里


LS.push(new StackNode(n % 8)); //最后怎么把他们出栈打印出来.


n = n / 8;
}
while(!LS.empty()){
System.out.println(LS.pop().getData());
}



}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯