Saludos!Por favor les pido ayuda! Necesito crear una clase tipo lista enlazadas simple. Tengo problemas con dos métodos importantes en el programa y e intentado muchas cosas pero no me sale. Si alguien me puede ayudar se lo agradeceré porque es que no estoy muy diestro en java soy nuevo en esto. Con la clase SLLNode no tengo problemas sino con la clase singlelist con los métodos searchnode y sortedInsert.
public class SLLNode {
private int info;
private SLLNode next;
public SLLNode(int i, SLLNode n){
this.info=i;
this.next=n;
}
public void setnext(SLLNode n){
this.next=n;
}
public void setinfo(int i){
this.info=i;
}
public SLLNode getnext(){
return this.next;
}
public int getinfo(){
return this.info;
}
}
public class singlelist {
private SLLNode head;
private SLLNode tail;
private int size;
private boolean printlist;
public SLLNode prt, temp;
public boolean res;
public singlelist (){
head=null;
tail=null;
size=0;
}
public void addTohead(int i){
if(size==0){
head=new SLLNode(i,null);
tail=head;
size++;
}else{
head=new SLLNode(i,head);
size++;
}
}
public void addTotail(int i){
if(size==0){
tail=new SLLNode(i,null);
head=tail;
size++;
}else{
tail.setnext(new SLLNode(i,null));
tail=tail.getnext();
size++;
}
}
void deleteFromhead(){
if(size!=0){
SLLNode prt;
prt=head;
if(head!=tail){
head=head.getnext();
size--;
prt=null;
}else{
head=tail=null;
size--;
}
}
}
void deleteFromtail(){
SLLNode prt;
prt=head;
if(head!=tail){
while(prt.getnext()!=tail){
prt=prt.getnext();
}
tail=prt;
prt=prt.getnext();
tail.setnext(null);
size--;
prt=null;
}
}
public boolean isEmpty(){
if(size==0){
return true;
}else{
return false;
}
}
void printlist(){
SLLNode prt;
prt=head;
for(int i=0;i<size;i++){
System.out.println(prt.getinfo()+" ");
prt=prt.getnext();
}
}
public void makeEmpty(){
while(printlist!=isEmpty()){
deleteFromtail();
}
}
//Arreglar este metodo
public SLLNode searchnode(int i){
SLLNode prt;
prt=head;
while(prt.getnext()!=i){//Tengo problemas para recorer la lista
if(prt.getinfo()==i){
System.out.println("Nodo encontrado"+i);
}else{
System.out.println("No se encontró el nodo");
}
}
}
public boolean deleteNode(int i){
searchnode();
if(prt.getinfo()==i){
return res=true;
}else{
return res= false;
}
}
public boolean isInlist(int i){
searchnode();
if(prt.getinfo()==i){
return res=true;
}else{
return res=false;
}
}
//Arreglar el ordenamiento burbuja para listas enlazadas
public void sortedInsert(int i){
SLLNode prt;
SLLNode temp;
int j=0;//No se como ordenar listas y lo hice como si fuera un vector
for(i=0;i<size;i++){
for(j=size-1;j>=i;j++){
if(i>prt.getinfo()){
temp=prt(i);
j=j-1;
prt(j-1)=temp;
}
}
}
}
public static void main(String[] args){
singlelist list=new singlelist();
list.addTotail(3);
list.addTotail(7);
list.addTotail(9);
list.addTotail(2);
list.addTotail(1);
list.addTotail(5);
list.addTotail(8);
list.addTotail(4);
list.addTotail(9);
list.printlist();
list.sortedInsert();
list.deleteFromtail();
list.searchnode();
list.isInlist();
list.deleteNode();
list.makeEmpty();
list.isEmpty();
}
}