Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Buscar secuencia de caracteres en lista enlazada, problema

Estas en el tema de Buscar secuencia de caracteres en lista enlazada, problema en el foro de C/C++ en Foros del Web. Hola, tengo una lista posicional (l) con cada nodo conteniendo un caracter. tengo otra lista posicional (sec) con cada nodo conteniendo un caracter. Necesito buscar ...
  #1 (permalink)  
Antiguo 07/05/2007, 07:27
 
Fecha de Ingreso: enero-2002
Mensajes: 14
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta Buscar secuencia de caracteres en lista enlazada, problema

Hola,

tengo una lista posicional (l) con cada nodo conteniendo un caracter.

tengo otra lista posicional (sec) con cada nodo conteniendo un caracter.

Necesito buscar en la lista (l) la secuencia de caracteres que tiene mi lista secundaria (sec).

Para ello, he creado esta funcion que devuelve TRUE si se encuentra la secuencia de caracteres en la lista (l).

Código:
bool Buscar(const TListaPos l, const TListaPos sec)
{
     char baseletra, secletra;
     int NumMuestras, NumSecuencia, i=1, j=1, contiguales=0;
     bool existe=false, cont=true;
     
     NumMuestras=LongitudListaPos(l);
     NumSecuencia=LongitudListaPos(sec);
     
    while ((i!=NumMuestras)&&(contiguales<NumSecuencia)){
       
        baseletra=VerElemListaPos(l,i);
        secletra=VerElemListaPos(l,j);
        if(baseletra==secletra){           
           j++; i++;
           contiguales++;                   
        } else {
           j=1;
           if(i==1){i++;} else{i=i;}
           contiguales=0;           
        }         
    }
    if(contiguales==NumSecuencia){existe=true;}

    return existe;
}

Esta funcion siempre me devuelve TRUE se encuentre o no la secuencia de caracteres en la lista original... ¿Que estoy haciendo mal???

Cualquier pista, se agradece.

Última edición por fernandodl; 07/05/2007 a las 12:08
  #2 (permalink)  
Antiguo 07/05/2007, 11:28
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Buscar secuencia de caracteres en lista enlazada, problema

¿Si es una funcion que retorna un valor, no deberia llevar un return en alguna parte? No revise mucho el codigo, pero si me di cuenta de ese detalle.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 07/05/2007, 14:24
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: Buscar secuencia de caracteres en lista enlazada, problema

has mirado que las funciones de LongitudListaPos y LongitudListaSec funcionan bien?
  #4 (permalink)  
Antiguo 07/05/2007, 14:40
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Buscar secuencia de caracteres en lista enlazada, problema

¿En que momento buscas la seciencia l en sec?
Lo mas cercano que veo es:
Código:
baseletra=VerElemListaPos(l,i);
secletra=VerElemListaPos(l,j);
Si es ahi donde obtienes un elemento de una lista y de la otra, por supuesto que siempre te dan iguales porque estas comparando la secuencia l consigo misma. Entonces:
Código:
if(baseletra==secletra)
Siempre es verdadero.

Espero sea de ayuda.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:11.