Listas simples ligadas en C
December 16th, 2009
Pues en esta ocasion veremos la implementacion de una lista ligada en c, solomente sera como un ejemplo ilustrativo pero las ideas desarrolladas aqui podran extenderse hacia horizontes mas amplios.
Una lista es un tipo de dato abstracto, se le llama asi porque es un tipo de dato definido por el programador a diferencia de los tipos de datos que nos ofrece el lenguaje C que ya son “nativos” del lenguaje por ejemplo los tipo int, float,char..etc
Imaginemos a la lista como una longaniza =), la longaniza esta compuesta por muchos trozos de carne unidos uno tras otro, las longanizas tienen un fin y un inicio. Imagina que todos los trozos que forma la longaniza son iguales, pues ahora la lista es como la longaniza y esos trozos de carne de la longaniza les llamaremos los nodos de la lista. Cada uno de los nodos puede almacenar informacion para fines practicos los nodos de nuestra lista almacenaran un entero, y podemos realizar varias operaciones sobre una lista, por ejemplo ver si la lista esta vacio o dicho de otra forma si la lista no tiene nodos, tambien recorrer los nodos de la lista buscando dentro de su informacion por algun valor en especifico, podremos insertar nuevos nodos a la lista, eliminar nodos …etc
Paso de valores por referencia y por valor
December 13th, 2009
Ahora hablara sobre un tema basico en la la programacion en lenguaje C y es el paso de parametros a funciones por valor y por referencia.
Cuando se empieza a aprender el lenguaje C y se habla sobre el tema de las funciones generalmente no se habla sobre este tema pues podria confundir a la persona que esta aprendiendo, el solo hecho de aprender el concepto de funcion y su manejor pede costar algo de tiempo y lo digo porque lo mismo me sucedio a mi cuando recien empezaba.
veamos un ejemplo de uso comun de una funcion
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio .h> void porValor(int param){ param +=2; } int main(){ int numero=5; porValor(numero); printf("El valor de numero es %d", numero); return 0; } </stdio> |
La salida del programa anterior debe ser:
El valor de numero es 5
En las lineas anteriores de codigo se ha pasado por valor la
Introduccion a punteros en C (empezando desde cero)
December 13th, 2009
ahora hablare sobre punteros en c, cualquiera que quiera programar en c debe de manejar los punteros como si fueran las tablas de multiplicar, personalmente he visto muchos casos de personas que inclusive estando a nivel universitario les cuesta trabajo entender como trabajan los punteros, es por eso que escribo esto y vamos a empezar desde cero, simpre es bueno tener unas buenas bases de punteros. En cierto sentido manejar punteros es facil, si tenemos algunos conocimientos en la forma en que se almacena la informacion en una computadora mmmm…ya empezamos mal (pensaras), pero no te preocupes no introducire demasiada jerga computacional, solo hablaremos de los conceptos en su forma mas general y digerible para cualquiera que alguna vez haya programado solo un poco.
Material Previo
Dentro de la computadora existe algo llamado memoria ram, es un espacio donde se almacenan todos los datos que utiliza la computadora solo cuando esta encendida, eso incluye los programas en C que escribes y ejecutas.
La memoria esta formada por registros cada registro tiene una direccion y el tamaño de estos registros depende de la arquitectura de la computadora, por lo general las computadoras tienen una arquitectura de 32, pero computadoras mas recientes tienen arquitecturas de 64 bits. Esto quiere decir que el tamaño de los registros de la memoria son de 32 bits para arquitecturas de 32 bits y asi para las demas arquitecturas.