一个简单的编程题,拜托请完善!

cooltigerzsh 2005-05-08 05:42:15
Ordered Linked list
===================

Below you can find simple implementation of linked list located in class
LinkedList. Current code doens't know how to keep list items in sorted
order. Your job is to write class OrderedLinked list that must *extend*
LinkedList and override the addItem() method so that the list keeps items
in *increasing* order.

Items placed in your list will all implement Sortable interface, so you
can use their isGreater(Sortable s) method to find out the correct order.
Your addItem should take one Sortable object as it's argument.

Do not make any modifications to LinkedList, LinkedListNode, Sortable or
LinkedListAssignment classes/interfaces.

You have to also *implement* Sortable interface in IntegerData class.
(Modify the class, don't extend it)

Typical interaction
===================
Enter numbers to add to the list.
-1 terminates.
1
5
3
6
2
-1
List:
1
2
3
5
6
.

(NOTE: '.' character denotes the end of the list!)
*/


import java.io.*;

/* Do your modifications below */

class OrderedLinkedList extends LinkedList {

}

/**************************************************************

End of your part

Don't modify below this line!
**************************************************************/

class LinkedList {

private LinkedListNode firstNode;

public LinkedList() {
firstNode=null;
}

public void addItem(Object o) {
LinkedListNode lln = new LinkedListNode(o);

if(firstNode==null)
firstNode=lln;
else {
lln.setNext(firstNode.getNext());
firstNode.setNext(lln);
}
}

public LinkedListNode getFirstNode() {
return firstNode;
}

protected void setFirstNode(LinkedListNode n) {
firstNode=n;
}

public String toString() {
LinkedListNode temp = firstNode;
String s="List:\n";

while(temp!=null) {
s=s+temp.getData().toString()+"\n";
temp=temp.getNext();
}

s=s+".";
return s;
}
}

/* DON'T MODIFY THIS CLASS */

class LinkedListNode {

private Object data;
private LinkedListNode next;

public LinkedListNode(Object o) {
data=o;
}

public Object getData(){
return(data);
}

public void setData(Object o) {
data=o;
}

public LinkedListNode getNext() {
return(next);
}

public void setNext(LinkedListNode l) {
next=l;
}
}

/* DON'T MODIFY THIS INTERFACE */

interface Sortable {
/* Returns true if the object should be placed after the
object s. Should return false if values are equal. If tested
against null, should return false.*/
public boolean isGreater(Sortable s);
}

/* DON'T MODIFY THIS CLASS */

public class prog64 {

public static void main (String args[]) throws IOException {
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));

System.out.println("Enter numbers to add to the list.");
System.out.println("-1 terminates.");

int n;
OrderedLinkedList oll = new OrderedLinkedList();

n=Integer.parseInt(stdin.readLine());
while (n!=-1) {
oll.addItem(new IntegerData(n));
n=Integer.parseInt(stdin.readLine());
}

System.out.println(oll);
}
}
...全文
250 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooltigerzsh 2005-05-10
  • 打赏
  • 举报
回复
好心的DX,再帮帮忙吧
wanghongtaoleifeng 2005-05-08
  • 打赏
  • 举报
回复
一个有序的linked list?是不是java认证的题?组合&继承
有序链表?
先放入Linkedlist,先从第一个开始,如果需要交换,就交换位置,感觉就是模拟指针操作一样啊。

不过怎么实现那个接口呢?
因为放进来的对象可能是不同的,就应该重载很多个isGreater方法啊?


很有意思哈
wkd1234 2005-05-08
  • 打赏
  • 举报
回复
顶!
MARS.nEIL 2005-05-08
  • 打赏
  • 举报
回复
UP

62,615

社区成员

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

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