特急!高分求助!帮忙解题!

shdliu 2004-11-27 09:25:26
请写出程序!高分相送!

编写application程序, 完成下面的功能
利用已有的节点类Node, 从文本文件data.txt中读出所有数据的整数,按从小到大的顺序插入到自己构造的链表里,并在屏幕上将排序好的数据输出。
class Node{
int m_Data; Node m_Next;
Node(int data){m_Data =data; m_Next = null}
Node(int data,Node next) {m_Data = data; m_Next = next;}
void setData(int data){m_Data = data;}
int getData(){return m_Data;}
void setNext(Node next){m_Next = next;}
Node getNext(){return m_Next;}
}
注:data.txt存放的数据为
24
45
12
38
90
6
20
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
febchen 2004-11-27
  • 打赏
  • 举报
回复
import java.io.*;

class Node{
private int m_Data;
private Node m_Next;

public Node(int data){
m_Data =data;
m_Next = null;
}

public Node(int data,Node next){
m_Data = data;
m_Next = next;
}

public void setData(int data){m_Data = data;}
public int getData(){return m_Data;}
public void setNext(Node next){m_Next = next;}
public Node getNext(){return m_Next;}
}

public class getNode{
String readstr;
BufferedReader in;
Node nodehead;

public getNode(String filename){
readstr="";
try
{
in=new BufferedReader(new FileReader(filename));
}catch(Exception e){
System.out.println("fileopen error");
System.exit(0);
}

nodehead=null;
createNodes();
printNodes();
}

public void createNodes(){
int value=0;
Node node=null;
try{
while((readstr=in.readLine())!=null){
value=Integer.parseInt(readstr);
node=new Node(value);
insertNode(node);
}
}catch(Exception e){
System.out.println("fileread error");
e.printStackTrace();
System.exit(0);
}


}

public void insertNode(Node node){
boolean inserted=false;
Node curnode=null;
Node prenode=null;
if(nodehead==null){
nodehead=new Node(0,node);
}
else{
prenode=nodehead;
while(prenode.getNext()!=null){
curnode=prenode.getNext();
if(node.getData()<curnode.getData()){
prenode.setNext(node);
node.setNext(curnode);
inserted=true;
break;
}
prenode=curnode;
}
if(inserted==false)
prenode.setNext(node);
}
}

public void printNodes(){
Node node=nodehead;
while(node.getNext()!=null){
node=node.getNext();
System.out.println(node.getData());
}
}


public static void main(String a[]){
getNode gn=new getNode("a.txt");
}

}
jFresH_MaN 2004-11-27
  • 打赏
  • 举报
回复
放到数组里面排序
classjava 2004-11-27
  • 打赏
  • 举报
回复
呵呵.楼主是在学数据结构,非要这个不行的
晕,呵呵,基础的总要搞复杂化
mq612 2004-11-27
  • 打赏
  • 举报
回复
想来想去不用Node类更方便。

import java.io.*;
import java.util.*;

public class Test {
File file;
BufferedReader read;
Vector value;

public Test() {
value = new Vector(50, 10);
file = new File("c:/test.txt");
try {
read = new BufferedReader(new FileReader(file));
}
catch (FileNotFoundException ex) {
System.out.println("错误!该文件不存在");
}
String r = new String();
try {
while ( (r = read.readLine()) != null) {
value.add(r);
}
}
catch (IOException ex1) {
}
Balance();
}
/**
* 排序
*/
public void Balance(){
int all = value.size();
for(int i=0;i<all;i++){
int min = 0;
for(int j=0;j<value.size();j++){
if((Integer.parseInt((String)value.elementAt(min))) > (Integer.parseInt((String)value.elementAt(j)))){
min = j;
}
}
System.out.println(value.elementAt(min));
value.remove(min);
}
}

public static void main(String[] args) {
new Test();
}
}
catblue 2004-11-27
  • 打赏
  • 举报
回复
都解决了,来晚了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧