Ejemplos de Pilas
-
Upload
carmen-cabrera -
Category
Documents
-
view
4 -
download
0
description
Transcript of Ejemplos de Pilas
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
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 */
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.
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
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;}