Estructura de datos Moises Sebastian Salgado Sanchez Análisis de Algoritmos Instituto IACC
Desarrollo De acuerdo a lo visto en los contenidos de la semana y al hecho de que las estructuras de datos pueden ser implementadas utilizando otras estructuras de datos, ¿cómo sería una estrategia para contar los elementos existentes en una pila? (Es decir, ¿cómo sería una forma eficiente de construir la función ount?!"
Antes de responder la pregunta, es necesario describir las características de los tipos de estructuras de datos listas, pilas y colas.
#istas
Una lista es un conunto de nodos enlazados, !ue "orman una cadena. En el caso de las listas es posible implementarlas utilizando otras estructuras de datos, en este caso se pude implementar listas a tra#$s de arreglos. El primero nodo de una lista, empieza en % no en &.
$ilas
En la #ida diaria cuando agregamos elementos sobre la super"icie del elemento anterior, este proceso se llama apilar, por eemplo cuando apilamos caas, platos y otros elementos, así "uncionan las pilas. 'as pilas pueden implementarse utilizando arreglos. 'as pilas trabaan con memorias del tipo 'I() !ue signi"ica 'ast In, (irst )ut en espa*ol +ltimo en entrar, primero en salir. 'as pilas poseen las siguientes operaciones básicas
ount% cantidad de ítems e-istentes en la pila. $rint% imprime los ítems e-istentes. $ush% permite agregar elementos en la parte superior del +ltimo ítem. $op% saca de la pila el primer elemento.
&sEmpty% #alor booleano !ue indica si la pila está #acía con true o "alse. $ee'% retorna el #alor del primer elemento de la pila.
olas
Al igual !ue las colas !ue realizan las personas en los bancos, las estructuras de datos llamadas colas usan memoria del tipo (I() !ue signi"ica en ingles (irst In, (irst )ut !ue en espa*ol signi"ica primero en entrar, primero en salir. 'as colas pueden implementarse utilizando arreglos.
ount% cantidad de ítems e-istentes en la cola. $rint% imprime los ítems e-istentes. dd% permite agregar elementos en la parte "inal de la cola. )emove% saca de la cola el primer elemento. &sEmpty% #alor booleano !ue indica si la cola está #acía con true o "alse.
A continuacin se adunta el cdigo en lenguae /0/ para crear una pila, adicionar elementos en este caso marcas de #ehículos con la operacin /ush, luego utilizamos una "uncin donde se muestra la operacin Count de "orma e"iciente, para obtener la cantidad de marcas agregadas en la pila. 12php class /ila3 public "unction 44construct563 7this89/ila : array56; << tratar pila como arreglo. = public "unction push57elemento63 7this89/ila>? : 7elemento; << agregar parametro a pila. echo @8 Marca @ . 7elemento .@ agregada a pila.1br<9@; = public "unction contador563 return count57this89/ila6; << contar elementos en pila. = = << instancia a clase /ila. 7obMarcas : ne /ila56; << ingreso de marcas a pila. 7obMarcas89push5@Che#rolet@6; 7obMarcas89push5@(ord@6; 7obMarcas89push5@Bodge@6; << obtener cantidad de elementos ingresados. echo @1p91b9Cantidad de elementos en pila @. 7obMarcas89contador56 .@1
A continuacin se aduntan dos capturas de pantallas, respecto al cdigo en /0/ y el "uncionamiento del obeto marcas, !ue es una instanciacin de la clase /ila.
'a siguiente captura de pantalla, muestra la construccin de la clase /ila y sus acciones, y posteriormente la instanciacin de clase como obeto marcas, para utilizar las "unciones de la clase.
'a siguiente captura de pantalla, es el resultado de las acciones /ush y Count del obeto marcas. Se puede apreciar !ue se agregaron las marcas Che#rolet, (ord y Bodge a la pila, y luego al contar la cantidad de elementos ingresados en la pila el retorno corresponde a elementos.
*i+liografía
Análisis de Algoritmos. Contenidos semana &