Ejemplos de Pilas

7
EJEMPLOS DE PILAS

description

pilas

Transcript of Ejemplos de Pilas

Page 1: Ejemplos de Pilas

EJEMPLOS DE PILAS

Page 2: Ejemplos de Pilas

Manzana Plátano Plátano ==rotar a la derecha==> Fresa Fresa Manzana

Fresa Manzana Plátano ==rotar a la izquierda==> Fresa Manzana Plátano

ENTRADA OPERACIÓN PILA 1 Apilar operando 1 2 Apilar operando 1, 2 + Añadir 3 4 Apilar operando 3, 4 * Multiplicar 12 3 Apilar operando 12, 3 + Añadir 15

Page 3: Ejemplos de Pilas

EJEMPLOS DE LISTA

1. Ejemplo: lista del curso: En una lista el acceso a los elementos se hace

siempre a partir del anterior (excepto el primero). Luis Juan

2. struct lista { int clave; struct lista *sig; }; Cuando se crea una lista debe estar

vacía. Por tanto para crearla se hace lo siguiente: struct lista *L; L = NULL;

3. #include struct lista{ int clave; struct lista *sig; }; int main(void){ struct lista

*L; struct lista *p; int i; L = NULL; /* Crea una lista vacia */ for (i = 4; i >= 1;

i--) { /* Reserva memoria para un nodo */ p = (struct lista *)

malloc(sizeof(struct lista)); p->clave = i; /* Introduce la informacion */ p->sig

= L; /* reorganiza */ L = p; /* los enlaces */

Page 4: Ejemplos de Pilas

EJEMPLOS DE FILAS.

Ejemplos de arreglos

Ejemplos Arreglos Unidimensionales • Resolvamos este primer ejemplo: (ejemplo 1) • Cargar 10 elementos en un vector, sumarlos y mostrar el resultado por pantalla. • Pasos para resolver este problema: • Leer un vector de 10 elementos • Sumar los elementos • Mostrar el resultado de la suma por pantalla

 Ejemplos Arreglos Unidimensionales Program Ejemplo1; {Version 1} type sumandos = array[1..10] of integer; Declaración del tipo arreglo var suma, i : integer; vec_sumandos : sumandos; Declaración de la variable arreglo begin suma := 0; for i:= 1 to 10 do read(vec_sumandos[i] ) Lectura de los elementos del arreglo for i := 1 to 10 do suma:= suma +vec_sumandos[i]; Suma de los elementos writeln (´La suma de los números es´, suma); end. Ejemplos Arreglos Unidimensionales Program Ejemplo1; {Version 2} type sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do begin read(vec_sumandos[i] ) suma:= suma +vec_sumandos[i]; end; writeln (´La suma de los números es´, suma); end.

 

Page 5: Ejemplos de Pilas

Inicialización◦ Por defecto: Cuando son creados, se aplica solamente a

arreglos globales y estáticos◦ Explícita: Cuando son creados, suministrando datos de

iniciación◦ En ejecución: Durante ejecución, cuando se asignan o

copian datos al arreglo.◦ Ejemplos

double scores[5] = {5.5, 6.7, 9.8, 10.0, 8.7}; int estado[3] = {-1, 0, 1}; char alfabeto[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘\0’}; char vocales[10] = {‘a’, ’e’, ‘i’, ‘o’, ‘u’,’\0’};

El nombre del arreglo es la dirección de su primer elemento (base)

int v[50];

int *p;

p = v; // Equivalente a p = &v[0];

*p = 5; // Equivalente a v[0] = 5;

p = p + 5; // Equivalente a p = &v[5];

*p = 9; // Equivalente a v[5] = 9;

double x[40];int i;for (i = 0; i < 40; i++) x[i] = 1.0;for (i = 0; i < 40; i++) *(x + i) = 1.0;

double *p, x[40];int i;p = x;for (i = 0; i < 40; i++) p[i] = 1.0;for (i = 0; i < 40; i++) *(p + i) = 1.0;for (i = 0; i < 40; i++, p++) *p = 1.0;

Ejemplo:

char *p = “ejemplo”; La variable puntero p obtiene la dirección del

primer elemento en el arreglo (e). El compilador coloca un carácter null al final del arreglo

Page 6: Ejemplos de Pilas

char localnombre [10];strcpy(localnombre, “PEPITO”);

Copiamos la constante de caracteres en el arreglo local

int string_length(char* x) { int l = 0; while (*x ) { x++; l++; } return l;}

int string_length(char* x) { int l = 0; while (*(x++)) l++; return l;}