示例#1
0
        public NodoInf Buscar(string lexema)//retorna el nodo, no econtrado retorna null
        {
            NodoInf p = primero;

            if (p == null)
            {
                //Console.WriteLine("La lista no contiene datos");
            }
            else
            {
                while (p.siguiente != null || p.siguiente == null)
                {
                    if (p.lexema == lexema)
                    {
                        return(p);
                    }
                    else if (p.siguiente == null)
                    {
                        return(null);
                    }
                    p = p.siguiente;
                }
            }
            return(null);
        }
示例#2
0
        public void SustituirLectura(string origLexema, string letura)//Remplazar el tipo
        {
            NodoInf pos = Buscar(origLexema);

            if (pos != null || pos == null)
            {
                pos.lectura = letura;
            }
        }
示例#3
0
        public void SustituirValor(string origLexema, string valor)//Remplaza el dato
        {
            NodoInf pos = Buscar(origLexema);

            if (pos != null || pos == null)
            {
                pos.valor = valor;
            }
        }
示例#4
0
 public NodoInf(int Id, string info, string void1, string void2)
 {
     this.Id        = Id;
     this.info      = info;
     this.void1     = void1;
     this.void2     = void2;
     this.siguiente = null;
     this.FirstAdj  = null;
 }
示例#5
0
        public void DelateUltimo()//de izquierda a derecha
        {
            NodoInf anterior = primero;
            NodoInf actual   = primero;

            while (actual.siguiente != null)
            {
                anterior = actual;
                actual   = actual.siguiente;
            }
            anterior.siguiente = null;
        }
示例#6
0
        public void Listar()//imprime los datos de la lista de izquierda a derecha
        {
            NodoInf actual = primero;

            Console.WriteLine("Id    lexema            tipo         lectura  valor              ");
            while (actual != null)
            {
                Console.WriteLine(actual.Id + "      " + actual.lexema + "              " + actual.tipo + "           " + actual.lectura + "       " + actual.valor);
                actual = actual.siguiente;
            }
            Console.WriteLine();
        }
示例#7
0
        public void DeletePosicionNodo(int p)//borra el nodo en la pocicion indicada
        {
            NodoInf anterior = primero;
            NodoInf actual   = primero;
            int     dato     = 0;

            if (p > 0)
            {
                while (dato != p && actual.siguiente != null)
                {
                    anterior = actual;
                    actual   = actual.siguiente;
                    dato++;
                }
                anterior.siguiente = actual.siguiente;
            }
        }
示例#8
0
        //public void addNodo(int Id, string lexema, string tipo, string lectura, string valor)//agrega nodo
        //{
        //    NodoAdj nuevo = new NodoAdj(Id,lexema,tipo,lectura,valor);
        //    nuevo.siguiente = primero;
        //    primero = nuevo;
        //    size++;
        //}

        public void addDiferentWayNodo(int Id, string lexema, string tipo, string lectura, string valor)
        {
            NodoInf nuevo = new NodoInf(Id, lexema, tipo, lectura, valor);
            NodoInf valor1, valor2;

            if (primero == null)
            {
                primero         = nuevo;
                nuevo.siguiente = null;
            }
            else
            {
                valor1 = primero;
                while (valor1 != null)
                {
                    valor2 = valor1.siguiente;
                    if (nuevo.Id <= valor1.Id)
                    {
                        nuevo.siguiente = primero;
                        primero         = nuevo;
                        break;
                    }
                    else if (nuevo.Id > valor1.Id && valor2 == null)
                    {
                        valor1.siguiente = nuevo;
                        nuevo.siguiente  = null;
                        break;
                    }
                    else if (valor1.Id < nuevo.Id && valor2.Id >= nuevo.Id)
                    {
                        valor1.siguiente = nuevo;
                        nuevo.siguiente  = valor2;
                        break;
                    }
                    else
                    {
                        valor1 = valor1.siguiente;
                    }
                }
            }
            size++;
        }
示例#9
0
 public void DeletePrimero()//de izquierda a derecha
 {
     primero = primero.siguiente;
 }
示例#10
0
 public ContainerInf()
 {
     this.primero = null;
     this.size    = 0;
 }