-3
나는 프로그래밍 과정에 대한 과제를 수행 중이며 목록을 사용하여 데이터를 저장하고 있습니다. 목록 클래스 :내 목록을 정렬 된 목록으로 만들려면 어떻게해야합니까?
public List() {
init();
}
protected Node<E> first, current, last;
public int numberOfNodes;
public boolean isEmpty() {
return numberOfNodes == 0;
}
public List<E> init() {
numberOfNodes = 0;
first = current = last = null;
return this;
}
public int size() {
return numberOfNodes;
}
public List<E> insert(E d) {
E copy = (E)d.clone();
if (isEmpty()) {
first = current = last = new Node(copy);
numberOfNodes += 1;
return this;
}
else{
for (current = first; current != null; current = current.next){
if(current.next== null){
current.next = last = new Node(copy);
last.prior = current;
last.next = null;
numberOfNodes += 1;
return this;
}
else{
Node<E> newNode = new Node(copy);
current.next.prior = newNode;
newNode.next = current.next;
newNode.prior = current;
current.next = newNode;
current = newNode;
numberOfNodes +=1;
return this;
}
}
}
return this;
}
public E retrieve() {
return (E) current.data.clone();
}
public List<E> remove() {
if (isEmpty()){
return init();
}
else if (numberOfNodes == 1){
return init();
}
else if (current == first) {
first = current = current.next;
current.prior = null;
numberOfNodes -= 1;
}
else if (current == last) {
last = current = current.prior;
current.next = null;
numberOfNodes -= 1;
}
else {
current.prior.next = current.next;
current.next.prior = current.prior;
current = current.next;
numberOfNodes -= 1;
}
return this;
}
public boolean find(E d) {
current = first;
while((current!=null && !(d.compareTo(current.data)==0))){
current=current.next;
}
if (current==null){
return false;
}else{
return true;
}
}
public boolean setFirst() {
if(isEmpty()){
return false;
}
else{
current = first;
return true;
}
}
public boolean setLast() {
if(isEmpty()){
return false;
}
else{
current = last;
return false;
}
}
public boolean getNext() {
if(isEmpty()||current == last){
return false;
}
else{
current = current.next;
return true;
}
}
public boolean getPrior() {
if(isEmpty()||current == first){
return false;
}
else{
current = current.prior;
return true;
}
}
public List<E> clone() {
List<E> clone;
try{
clone = (List<E>)super.clone();
} catch(CloneNotSupportedException e){
throw new Error("This cannot be cloned!");
}
clone.init();
for(Node n = first; n != null; n = n.next){
clone.insert((E)n.clone().data);
}
clone.numberOfNodes = this.numberOfNodes;
return clone;
}
이제 할당은 목록을 정렬 된 목록으로 만들고 항목을 큰 것부터 작은 것으로 정렬하는 것입니다. sortedList라는 별도의 클래스에서이 작업을 수행해야합니다.
나는 시작했다,하지만 난 다음에 수행 할에 정말 아무 생각이 없다 : 나는 두 개의 서로 다른 개체에 대한 내 프로그램의 목록을 사용하고
public class SortedList extends List implements Comparable {
public int compareTo(Object o) {
// TODO Auto-generated method stub
return 0;
}
}
을 : 내가 내 설정 클래스의 목록을 사용하여 . 세트는 기본적으로 자연수의 모음입니다. 예 : {1,2,3,4,5}는 집합입니다.
또한 내 표 클래스에서 목록을 사용합니다. 테이블은 변수로 구성됩니다. 변수는 키와 값으로 구성됩니다. 키는 식별자 (예 : Alfa)이고 값은 Set {1,2,3}입니다. 할당은 목록의 항목을 큰 순서에서 작은 순서로 정렬하는 것입니다.
그래서 SortedList는 목록 클래스를 확장하는 별도의 클래스 여야합니다! 어떻게해야합니까? 많은 많은 감사합니다! 수단,이요소 Comparable
하지 List
(타입)이 될 것을 -
하는 항목이 정렬 하시겠습니까? –
추가하는 것보다 작은 요소를 찾을 때까지 목록을 내려다 보는 삽입 정렬을 할 수 있습니다. 이것은 삽입 지점입니다. –
두 개의 다른 객체에 대해 내 프로그램에서 목록을 사용하고 있습니다. 내 Set 클래스에서 목록을 사용합니다. 세트는 기본적으로 자연수의 모음입니다. 예 : {1,2,3,4,5}는 집합입니다. 또한, 내 테이블 클래스에서 목록을 사용합니다. 테이블은 변수로 구성됩니다. 변수는 키와 값으로 구성됩니다. 키는 식별자 (예 : Alfa)이고 값은 Set {1,2,3}입니다. 할당은 목록의 항목을 큰 순서에서 작은 순서로 정렬하는 것입니다. 어떻게해야합니까? 많은 많은 감사합니다! –