joaquinGpe99
Bovino adicto
- Desde
- 2 Sep 2010
- Mensajes
- 666
- Tema Autor
- #1
bueno resulta que la profa nos dejo una tarea que es
lista doblemente enlazadas suma de 2 polinomios ordenados
el caso es que a puros libros, quemar pestañas, red bull, cafe, desvelo, y claro dejar el napb u.u logre hacer lo primero lista doblemente enlazadas, pero lo que no puedo hacer es la suma de 2 polinomios ordenados agradeceria al que me ayude
les agrego el codigo que hasta ahora tengo:
import javax.swing.*;
public class lisdob
{
public static void main (String arg[])
{
ListaDoble ListaD = new ListaDoble();
int Dato = 0;
int op;
do
{
op=Integer.parseInt(JOptionPane.showInputDialog(null,
"1 imprimer inicio al final \n" +
"2 Imprimir Final a Inicio\n" +
"3 Agregar Elemento al Principio de la Lista\n" +
"4 Agregar Elemento al final de la Lista\n" +
"5 Eliminar_Referencia\n" +
"6 salir\n"));
//---- Elegir opcion ---\\
switch (op) {
case 1:
ListaD.ImprimirNodo_Next();
break;
case 2:
ListaD.ImprimirNodo_Prev();
break;
case 3:
int x=1;
while(x!=2)
{
Dato=Integer.parseInt(JOptionPane.showInputDialog(null,"ingresa el dato principio"));
ListaD.IntroducirDato_Principio(Dato);
//ListaD.ImprimirNodo_Next();
x=Integer.parseInt(JOptionPane.showInputDialog(null,"Agregar un dato mas\n 1.- Si\n 2.- No"));
}
break;
case 4:
int y=1;
while(y!=2)
{
Dato=Integer.parseInt(JOptionPane.showInputDialog(null,"ingresa el dato al final"));
ListaD.IntroducirDato_Final(Dato);
//ListaD.ImprimirNodo_Prev();
y=Integer.parseInt(JOptionPane.showInputDialog(null,"Agregar un dato mas\n 1.- Si\n 2.- No"));
}
break;
case 5:
Dato=Integer.parseInt(JOptionPane.showInputDialog(null,"ingresa el dato a eliminar"));;
ListaD.Eliminar_Referencia(Dato);
break;
case 6:
JOptionPane.showMessageDialog(null,"*****************By
************\n joaquingpe todos los derechor reservados");
op=6;
break;
}
} while (op!=6);
}
}
class Nodo{
public int Dato;
public Nodo Next;
public Nodo Prev;
public Nodo(int Dato){
this.Dato = Dato;
Next = null;
Prev = null;
}
}
class ListaDoble {
public Nodo Lista ;
public ListaDoble () {
Lista = null;
}
public void IntroducirDato_Principio(int Dato) {
Recorrer_Lista_Prev ();
Nodo Nuevo = new Nodo(Dato);
if ( Lista == null ) {
Lista = Nuevo;
} else {
Nuevo.Next = Lista;
Lista.Prev = Nuevo;
}
}
public void IntroducirDato_Final(int Dato) {
Recorrer_Lista_Next ();
Nodo Nuevo = new Nodo(Dato);
if ( Lista == null ) {
Lista = Nuevo;
} else {
Nuevo.Prev = Lista;
Lista.Next = Nuevo;
}
}
public void ImprimirNodo_Next() {
Recorrer_Lista_Prev();
String cad="";
if (Lista == null ) {
JOptionPane.showMessageDialog(null,"La pila esta vacia!!!");
} else {
int Index = 1;
while (Lista.Next != null) {
//JOptionPane.showMessageDialog(null," "+ Index + " .- " + Lista.Dato);
cad=cad+Index+".-"+ Lista.Dato+"\n";
Lista = Lista.Next;
Index ++;
}
JOptionPane.showMessageDialog(null,""+cad+Index+".-" + Lista.Dato);
// JOptionPane.showMessageDialog(null,"\n");zz
}
}
public void ImprimirNodo_Prev() {
Recorrer_Lista_Next();
String cad="";
if (Lista == null ) {
JOptionPane.showMessageDialog(null,"La pila esta vacia!!!");
} else {
int Index = 1;
while (Lista.Prev != null) {
//JOptionPane.showMessageDialog(null," "+ Index + " .- " + Lista.Dato);
cad=cad+Index+".-"+ Lista.Dato+"\n";
Lista = Lista.Prev;
Index ++;
}
//JOptionPane.showMessageDialog(null," "+ Index + " .- " + Lista.Dato);
JOptionPane.showMessageDialog(null,""+cad+Index+".-" + Lista.Dato);
// JOptionPane.showMessageDialog(null,"\n");
}
}
public void Eliminar_Principio () {
if (Lista == null) {
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
} else {
Recorrer_Lista_Prev();
if (Lista.Next != null) {
Lista = Lista.Next;
Lista.Prev = null;
} else {
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
}
public void Eliminar_Final () {
if (Lista == null) {
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
} else {
Recorrer_Lista_Next();
if (Lista.Prev != null) {
Lista = Lista.Prev;
Lista.Next = null;
} else {
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
}
public void Eliminar_Referencia (int N) {
if(Lista==null)
{
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
//if (Lista.Prev == null && Lista.Next == null)
else {
int w=0;
w=Integer.parseInt(JOptionPane.showInputDialog(null,"Elija\n 1.-buscar de Derecha a Izquierda\n 2.-Buscar de Izquierda a derecha"));
if(w==1)
{
if(Lista.Prev!=null)
{
Recorrer_Lista_Prev();
while (Lista.Dato != N ) {
Lista = Lista.Next;
}
if (Lista.Prev == null) {
Lista = Lista.Next;
Lista.Prev = null;
} else if (Lista.Next == null) {
Lista = Lista.Prev;
Lista.Next = null;
} else {
Lista = Lista.Prev;
Lista.Next = Lista.Next.Next;
Lista = Lista.Next;
Lista.Prev = Lista.Prev.Prev;
}
}
else
{
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
else
{
if(Lista.Next!=null)
{
Recorrer_Lista_Next();
while (Lista.Dato != N ) {
Lista = Lista.Prev;
}
if (Lista.Next == null) {
Lista = Lista.Prev;
Lista.Next = null;
} else if (Lista.Prev == null) {
Lista = Lista.Next;
Lista.Prev = null;
} else {
Lista = Lista.Next;
Lista.Prev = Lista.Prev.Prev;
Lista = Lista.Prev;
Lista.Next = Lista.Next.Next;
}
}
else
{
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
}
}
public void Recorrer_Lista_Next () {
if (Lista != null )
{
while (Lista.Next != null) {
Lista = Lista.Next;
}
}
}
public void Recorrer_Lista_Prev () {
if (Lista != null )
{
while (Lista.Prev != null) {
Lista = Lista.Prev;
}
}
}
}
lista doblemente enlazadas suma de 2 polinomios ordenados
el caso es que a puros libros, quemar pestañas, red bull, cafe, desvelo, y claro dejar el napb u.u logre hacer lo primero lista doblemente enlazadas, pero lo que no puedo hacer es la suma de 2 polinomios ordenados agradeceria al que me ayude
les agrego el codigo que hasta ahora tengo:
import javax.swing.*;
public class lisdob
{
public static void main (String arg[])
{
ListaDoble ListaD = new ListaDoble();
int Dato = 0;
int op;
do
{
op=Integer.parseInt(JOptionPane.showInputDialog(null,
"1 imprimer inicio al final \n" +
"2 Imprimir Final a Inicio\n" +
"3 Agregar Elemento al Principio de la Lista\n" +
"4 Agregar Elemento al final de la Lista\n" +
"5 Eliminar_Referencia\n" +
"6 salir\n"));
//---- Elegir opcion ---\\
switch (op) {
case 1:
ListaD.ImprimirNodo_Next();
break;
case 2:
ListaD.ImprimirNodo_Prev();
break;
case 3:
int x=1;
while(x!=2)
{
Dato=Integer.parseInt(JOptionPane.showInputDialog(null,"ingresa el dato principio"));
ListaD.IntroducirDato_Principio(Dato);
//ListaD.ImprimirNodo_Next();
x=Integer.parseInt(JOptionPane.showInputDialog(null,"Agregar un dato mas\n 1.- Si\n 2.- No"));
}
break;
case 4:
int y=1;
while(y!=2)
{
Dato=Integer.parseInt(JOptionPane.showInputDialog(null,"ingresa el dato al final"));
ListaD.IntroducirDato_Final(Dato);
//ListaD.ImprimirNodo_Prev();
y=Integer.parseInt(JOptionPane.showInputDialog(null,"Agregar un dato mas\n 1.- Si\n 2.- No"));
}
break;
case 5:
Dato=Integer.parseInt(JOptionPane.showInputDialog(null,"ingresa el dato a eliminar"));;
ListaD.Eliminar_Referencia(Dato);
break;
case 6:
JOptionPane.showMessageDialog(null,"*****************By
************\n joaquingpe todos los derechor reservados");op=6;
break;
}
} while (op!=6);
}
}
class Nodo{
public int Dato;
public Nodo Next;
public Nodo Prev;
public Nodo(int Dato){
this.Dato = Dato;
Next = null;
Prev = null;
}
}
class ListaDoble {
public Nodo Lista ;
public ListaDoble () {
Lista = null;
}
public void IntroducirDato_Principio(int Dato) {
Recorrer_Lista_Prev ();
Nodo Nuevo = new Nodo(Dato);
if ( Lista == null ) {
Lista = Nuevo;
} else {
Nuevo.Next = Lista;
Lista.Prev = Nuevo;
}
}
public void IntroducirDato_Final(int Dato) {
Recorrer_Lista_Next ();
Nodo Nuevo = new Nodo(Dato);
if ( Lista == null ) {
Lista = Nuevo;
} else {
Nuevo.Prev = Lista;
Lista.Next = Nuevo;
}
}
public void ImprimirNodo_Next() {
Recorrer_Lista_Prev();
String cad="";
if (Lista == null ) {
JOptionPane.showMessageDialog(null,"La pila esta vacia!!!");
} else {
int Index = 1;
while (Lista.Next != null) {
//JOptionPane.showMessageDialog(null," "+ Index + " .- " + Lista.Dato);
cad=cad+Index+".-"+ Lista.Dato+"\n";
Lista = Lista.Next;
Index ++;
}
JOptionPane.showMessageDialog(null,""+cad+Index+".-" + Lista.Dato);
// JOptionPane.showMessageDialog(null,"\n");zz
}
}
public void ImprimirNodo_Prev() {
Recorrer_Lista_Next();
String cad="";
if (Lista == null ) {
JOptionPane.showMessageDialog(null,"La pila esta vacia!!!");
} else {
int Index = 1;
while (Lista.Prev != null) {
//JOptionPane.showMessageDialog(null," "+ Index + " .- " + Lista.Dato);
cad=cad+Index+".-"+ Lista.Dato+"\n";
Lista = Lista.Prev;
Index ++;
}
//JOptionPane.showMessageDialog(null," "+ Index + " .- " + Lista.Dato);
JOptionPane.showMessageDialog(null,""+cad+Index+".-" + Lista.Dato);
// JOptionPane.showMessageDialog(null,"\n");
}
}
public void Eliminar_Principio () {
if (Lista == null) {
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
} else {
Recorrer_Lista_Prev();
if (Lista.Next != null) {
Lista = Lista.Next;
Lista.Prev = null;
} else {
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
}
public void Eliminar_Final () {
if (Lista == null) {
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
} else {
Recorrer_Lista_Next();
if (Lista.Prev != null) {
Lista = Lista.Prev;
Lista.Next = null;
} else {
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
}
public void Eliminar_Referencia (int N) {
if(Lista==null)
{
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
//if (Lista.Prev == null && Lista.Next == null)
else {
int w=0;
w=Integer.parseInt(JOptionPane.showInputDialog(null,"Elija\n 1.-buscar de Derecha a Izquierda\n 2.-Buscar de Izquierda a derecha"));
if(w==1)
{
if(Lista.Prev!=null)
{
Recorrer_Lista_Prev();
while (Lista.Dato != N ) {
Lista = Lista.Next;
}
if (Lista.Prev == null) {
Lista = Lista.Next;
Lista.Prev = null;
} else if (Lista.Next == null) {
Lista = Lista.Prev;
Lista.Next = null;
} else {
Lista = Lista.Prev;
Lista.Next = Lista.Next.Next;
Lista = Lista.Next;
Lista.Prev = Lista.Prev.Prev;
}
}
else
{
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
else
{
if(Lista.Next!=null)
{
Recorrer_Lista_Next();
while (Lista.Dato != N ) {
Lista = Lista.Prev;
}
if (Lista.Next == null) {
Lista = Lista.Prev;
Lista.Next = null;
} else if (Lista.Prev == null) {
Lista = Lista.Next;
Lista.Prev = null;
} else {
Lista = Lista.Next;
Lista.Prev = Lista.Prev.Prev;
Lista = Lista.Prev;
Lista.Next = Lista.Next.Next;
}
}
else
{
Lista = null;
JOptionPane.showMessageDialog(null,"\n\t Lista Vacia !!!");
}
}
}
}
public void Recorrer_Lista_Next () {
if (Lista != null )
{
while (Lista.Next != null) {
Lista = Lista.Next;
}
}
}
public void Recorrer_Lista_Prev () {
if (Lista != null )
{
while (Lista.Prev != null) {
Lista = Lista.Prev;
}
}
}
}