rea Acadmica: Computacin
Asignatura: Estructura de Datos I
Tema: Introduccin a las Estructuras de Datos
Profesor(a): Lic. Mnica Cornejo Velzquez
Periodo: Julio Diciembre 2011
Tema: Estructuras de Datos I
Abstract
Data structures are important in the profesional life of a degree
in Computer Systems and the problems in faces and has to
solve, involving the handling of information (data), which has to
manipulate to get results. This paper describes the operation of
dynamic data structures such as dobly linked list, file
management, operations can be performed with stacks and
queues.
Keywords:
Data structures, arrays, list, files, stacks and queues.
Contenido programtico
INTRODUCCIN
UNIDAD I: Introduccin a las estructuras de datos
UNIDAD II: Estructuras de datos estticas
UNIDAD III: Estructuras de datos dinmicas
UNIDAD IV: Archivos
Hacer clic sobre el texto
SALIR
Estructuras de Datos
Hacer clic sobre el texto
Objetivo del tema
Qu necesitas
saber?
MENU
OBJETIVO
Introducir al estudiante en el uso y manejo
de los datos en los problemas reales, y
como por medio de una computadora se
pueden
procesar
informacin.
gran
cantidad
de
Qu es una Estructura de Datos?
Son
una
coleccin
organizacin
se
de
datos
caracteriza
por
cuya
las
funciones de acceso que se usan para
almacenar
acceder
individuales de datos.
elementos
Qu es una Estructura de Datos?
En programacin, una estructura de datos
es una forma de organizar un conjunto de
datos elementales con el objetivo de
facilitar la manipulacin de estos datos
como un todo o individualmente.
Hacer clic sobre el texto
adicionar un nuevo valor a la
estructura
encontrar un determinado
valor en la estructura para
realizar una operacin con
este valor
borrar un valor de la
estructura
de los elementos
pertenecientes a la estructura
Qu son y para que sirven?
Hasta ahora has estado resolviendo
problemas cotidianos con estructuras
estticas como arreglos, matrices, variables,
apuntadores, etc.
Ahora aprenders a resolver problemas mas
complejos con conjuntos de datos, los
cuales no son tan fciles de resolver con las
estructuras antes mencionadas.
Qu son y para que sirven?
Para una mayor comprensin de lo que
son las Estructuras de Datos sugiero la
siguiente lectura
Estructuras de Datos Bsicas
De Luis E. Vargas Arcona
Pgina 2
Hacer clic sobre el texto
Qu necesitas saber?
Conocer el lenguaje de programacin en C
Conocimientos de algebra y teora de
conjuntos.
Anlisis de funciones y tiempo de
ejecucin de un programa
Uso y manejo de punteros
Diseo de algoritmos
Hacer clic sobre el texto
Bibliografa recomendada
Aaron N. Tenebaum, Estructura de Datos En C, Ed. Prentice
Cair/Guardati, Estructura de Datos,
Ed. Mc. Graw Hill
Seymour Lipschutz, Estructura de Datos, Ed. Mc.Graw Hill
Jorge A. Villalobos S, Diseo y Manejo de Estructura de Datos, Ed.
Mc. Graw Hill
Fundamentals of Computer Algoritmits, Ed. Computer Science
Press Inc.
Computer Algoriting, Ed. Addison-Wesley
MENU
Introduccin a las
Estructuras de Datos
1.1 Importancia de la organizacin de los datos
Fueron diseadas
Acceso a gran
cantidad de
informacin
Aplicaciones de
almacemanamiento
Operaciones de
clculo
En un mnimo de
tiempo
Manejaremos estructuras de datos de
dos tipos:
Estticas
Dinmicas
Uso de arreglos
Uso de matrices
Uso de punteros
Manejo de memoria
Bibliografa recomendada
Aaron N. Tenebaum, Estructura de Datos En C, Ed. Prentice
Cair/Guardati, Estructura de Datos,
Ed. Mc. Graw Hill
Seymour Lipschutz, Estructura de Datos, Ed. Mc.Graw Hill
Jorge A. Villalobos S, Diseo y Manejo de Estructura de Datos, Ed.
Mc. Graw Hill
Fundamentals of Computer Algoritmits, Ed. Computer Science
Press Inc.
Computer Algoriting, Ed. Addison-Wesley
MENU
Estructuras de Datos
Estticas
Pilas
y
Colas
Son
estructuras
utilizadas
como
herramientas de programacin de tipo
LIFO (Last in-First out)
Permiten el acceso solo a un elemento a
la vez.
La mayora de los procesadores utilizan
una arquitectura basada en pilas
Operaciones con Pilas
Tienen dos operaciones primarias:
Push: insertar datos en el tope de la pila
Pop: sacar datos del tope de la pila
Ejemplo
Pila de libros
Ejemplo
Pila de libros
Pilas implementadas en listas
Constructores:
Push (Insertar al inicio)
Pop (Eliminar al inicio)
Selectores:
Pila-Vacia? (El apuntado Cabeza es Nul?)
Top (Mostrar el primero)
Algoritmos
Push( S, x )
Top( S ) < Top( S ) + 1
S[ top( S ) ] < x
Pop( S )
If PilaVacia
error
PilaVacia( S )
else
If top( S ) = 0
Top( S ) < Top( S ) - 1
return true
return S[ Top( S ) + 1 ]
Else
return false
Son estructuras de datos de tipo FIFO
(First in-First out)
Simulan una cola de personas en el cine
Las colas son herramientas de
programacin como las pilas
Operaciones con Colas
Operaciones primarias:
Encolar: agrega un nuevo dato al final de
la cola
Desencolar: elimina un dato del principio
de la cola
Operaciones con Colas
Ejemplo de Encolar
Operaciones con Colas
Descolar
Pilas implementadas en listas
Constructores:
Encolar (Insertar al final)
Desencolar (Eliminar al inicio)
Selectores:
Cola-Vaca (El apuntado Cabeza es Null)
Primero-Cola (Mostrar el primero)
Algoritmos
Encolar( Q, x )
Q[ Fin( Q ) ] < x
if Fin( Q ) = length( Q )
Fin( Q ) < 1
else
Fin( Q ) < Fin( Q ) + 1
Desencolar( Q )
x < Q[ Cabeza( Q ) ]
if Cabeza( Q ) = Length( Q )
Cabeza( Q ) < 1
else
Cabeza( Q ) < Cabeza( Q )
+1
return x
Actividad
Realizar la codificacin de los algoritmos
anteriores
MENU
Estructuras de Datos
Dinmicas
Listas Doblemente
Enlazadas
Definicin
Es una lista lineal en la que cada nodo
tiene dos enlaces, uno al nodo siguiente, y
otro al anterior.
anterior
DATO
NODO
siguiente
Las
listas
doblemente
enlazadas
no
necesitan un nodo especial para acceder a
ellas,
pueden
recorrerse
en
ambos
sentidos a partir de cualquier nodo, hasta
que se llega a uno de los extremos.
Declaracin de LDE en C
typedef struct _nodo
{
int dato;
struct _nodo *siguiente;
struct _nodo *anterior;
} tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Lista;
tipoNodo, es el tipo para
declarar nodos
pNodo, es el tipo para declarar
punteros a un nodo
Operaciones bsicas
Aadir o insertar elementos.
Buscar o localizar elementos.
Borrar elementos.
Moverse a travs de la lista, siguiente y
anterior.
Aadir o insertar elementos
Casos
1. Aadir elemento en una lista doblemente
enlazada vaca
2. Insertar un elemento en la primera posicin de
la lista
3. Insertar un elemento en la ltima posicin de la
lista
4. Insertar un elemento a continuacin de un nodo
cualquiera de una lista
Caso 1: Aadir un elemento a una lista vaca
Partiremos de que ya tenemos el nodo a
insertar y, por supuesto un puntero que
apunte a l, adems el puntero que define
la lista, que valdr NULL.
Lista
NULL
1. Lista apunta
a nodo
Lista
NULL
3. lista->siguiente
apunta a NULL
nodo
NULL
2. lista->anterior
apunta a NULL
JUAN
NULL
Nuevo nodo
a insertar
Lista
NULL
4. Nodo ya
insertado a la Lista
JUAN
NULL
Caso 2: Insertar nodo en la primera posicin de la lista
1. Lista->anterior
apunta a nodo
Lista
NULL
JUAN
NODO
NULL
LUIS
2. nodo->siguiente
apunta a Lista
3. nodo->anterior
apunta a NULL
Nodo a
insertar
NULL
Resultado:
Resultado
Lista
NULL
Lista
LUISNULL
JUAN
NULL
Caso 3: Insertar un elemento en la ltima posicin de la lista
1. Lista debe apuntar al
ltimo nodo de la lista.
3. nodo->anterior
apunta a Lista->
siguiente
Lista
NULL
LUIS
JUAN
NULL
NODO
2. Lista->siguiente
apunta a nodo.
IVAN
Nodo a
insertar
NUL
4. nodo->siguiente
apunta a NULL.
Resultado
Lista
NULL
Lista
LUISNULL
Lista
JUAN
NULLIVAN
NULL
Caso 4: Insertar un nodo en cualquier posicin
Lista debe apuntar al
nodo anterior a donde se
va insertar el nuevo nodo
Lista
NULL
LUIS
JUAN
IVAN
TINO
Partimos de una lista no vaca, e insertaremos un
nodo a continuacin de uno nodo cualquiera que no
sea el ltimo de la lista (Lista->anterior != NULL), en
este caso lo insertamos entre estos nodos existentes.
NULL
2. Hacemos que Lista>siguiente apunte a nodo
4. Hacemos que nodo->
siguiente ->anterior
apunte a nodo
Lista
NULL
LUIS
JUAN
IVAN
3.Hacemos que nodo>anterior apunte a lista
PEDRO
NODO
Nodo a insertar
TINO
NULL
1. Hacemos que nodo>siguiente apunte a lista>siguiente.
Resultado
Lista
LUIS
NULL
JUAN
PEDRO
IVAN
TINO
NULL
Buscar o localizar un elemento
En varios aspectos, una lista doblemente
enlazada se comporta como dos listas
abiertas que comparten los datos. De esta
manera lo que hacemos en listas abiertas
para buscar o localizar un elemento se
puede
aplicar
enlazadas.
listas
doblemente
Adems tenemos la ventaja de poder
avanzar y retroceder desde cualquier
nodo, sin necesidad de volver a uno de los
extremos de la lista.
Lista
LUIS
NULL
JUAN
PEDRO
IVAN
TINO
NULL
Hay diferencia entre buscar un elemento en una
lista ordenada a uno desordenada, mientras que
en la ordenada buscamos un elemento a partir
de otro en la desordenada es mas complicado,
hay que hacer mas comparaciones.
Lista ordenada
1
NULL
NULL
Lista desordenada
3
NULL
4
NULL
Para recorrer una lista procederemos de un
modo parecido al que usbamos con las
listas abiertas, ahora no necesitamos un
puntero auxiliar, pero tenemos que tener en
cuenta que Lista no tiene por qu estar en
uno de los extremos.
Retrocedemos el puntero Lista hasta el
comienzo de la lista
lista->anterior mientras lista->anterior no sea NULL
Retrocedemos el puntero Lista hasta el
comienzo de la lista
lista->anterior mientras lista->anterior no sea NULL
Lista
LUIS
Lista
Lista
JUAN
PEDRO
IVAN
TINO
NULL
NULL
Abriremos un bucle que al menos debe
tener una condicin, que el ndice no
sea NULL. Para recorrer la lista.
Bucle
para
visualizar
los
nodos
Bucle para visualizar los nodos
indice = Lista;
while(indice->anterior)
indice=indice->anterior;
while(indice) {
printf("%d\n", indice->dato);
indice = indice->siguiente;
Eliminar un elemento en la LDE
Casos
1. Eliminar el nico nodo de una lista
doblemente enlazada.
2. Eliminar el primer nodo.
3. Eliminar el ltimo nodo.
4. Eliminar un nodo intermedio.
Caso 1: Eliminar un nico nodo
En este caso existe un solo nodo en
la Lista como se muestra en el
grfico.
Verificar que la lista no este
vaca (para todos los casos).
Lista
JUAN
NULL
2. Hacemos que
lista apunte a NULL
NULL
1. Eliminamos el nodo (Free)
Lista
NULL
El resultado
ser una Lista
vaca
Caso 2: Eliminar el primer nodo de la lista
1. Utilizamos
el puntero
1. Hacemos
quenodo
Lista que
apunte
al nodo
a eliminar, es
apunte
a Lista->siguiente
decir en donde se encuentra
lista.
Lista
Nodo
Lista
LUIS
NULL
Tenemos dos casos posibles
que lista apunte al primer
nodo o que no lo haga. En
este caso lista apunta al
primer nodo.
JUAN
PEDRO
IVAN
TINO
NULL
NULL
3. Borramos el
nodo apuntado
por nodo (free)
2. Hacemos que nodo>siguiente->anterior apunte
a NULL
Resultado
Lista original
LUIS
JUAN
PEDRO
IVAN
NULL
TINO
NULL
Despus de haber
eliminado el primer
nodo de la lista
JUAN
NULL
PEDRO
IVAN
TINO
NULL
Si Lista NO apunta
al primer nodo de la
Lista:
Hacer el recorrido de
Lista hasta el primer
nodo para poder
eliminarlo
Realizar el
procedimiento
anterior para
eliminar el primer
nodo de la Lista
Caso 3: Eliminar ltimo nodo de la lista
1. Hacemos que Nodo
apunte al nodo a eliminar y
Lista apunte a Lista>anterior
Tenemos dos casos posibles que
Lista apunte al primer nodo o que
no lo haga. En este caso Lista
apunta al primer nodo:
Nodo
Lista
JUAN
PEDRO
NULL
IVAN
TINO
NULL
2. Hacemos que nodo>anterior->siguiente apunte
a NULL
NULL
3. Borramos el
nodo apuntado
por nodo (Free)
Resultado
Lista original
JUAN
PEDRO
IVAN
TINO
NULL
NULL
Despus de haber
eliminado el ltimo
nodo de la lista
JUAN
NULL
PEDRO
IVAN
NULL
Si Lista NO
apunta al ltimo
nodo de la Lista:
Hacer el
recorrido de
Lista hasta el
ltimo nodo para
poder eliminarlo
Realizar el
procedimiento
anterior para
eliminar el ltimo
nodo de la Lista
Caso 4: Eliminar un nodo cualquiera de la lista
3. Hacemos
2. Hacemos
que Lista-que Nodo apunte
1.>anterior->siguiente
Hacemos que
Lista yapunte
a Lista
regresamos a Lista
apunte aa Lista->siguiente
Nodo->siguiente al inicio
Lista
Lista
JUAN
Nodo
PEDRO
IVAN
NULL
Borramos el nodo
4. Hacemos que Nodoapuntado por >siguiente->anterior
Nodo
apunte
(Free (Nodo)) a Nodo->anterior
TINO
NULL
Resultado
JUAN
NULL
IVAN
TINO
NULL
Bibliografa recomendada
Aaron N. Tenebaum, Estructura de Datos En C, Ed. Prentice
Cair/Guardati, Estructura de Datos,
Ed. Mc. Graw Hill
Seymour Lipschutz, Estructura de Datos, Ed. Mc.Graw Hill
Jorge A. Villalobos S, Diseo y Manejo de Estructura de Datos, Ed.
Mc. Graw Hill
Fundamentals of Computer Algoritmits, Ed. Computer Science
Press Inc.
Computer Algoriting, Ed. Addison-Wesley
MENU
Archivos
Generalidades
Muy a menudo necesitamos almacenar
cierta
cantidad
de
datos
de
forma
permanente. La memoria del ordenador es
voltil, y lo que es peor, escasa y cara. De
modo que cuando tenemos que guardar
nuestros
datos
tenemos
que
durante
recurrir
cierto
tiempo
sistemas
almacenamiento ms econmicos.
de
Un poco de historia
Cintas
perforadas
Discos
magnticos
Proliferacin
almacenamiento
secuencial
Almacenamiento
aleatorio
Tarjetas
perforadas
Cintas
magnticas
Almacenamiento
secuencial
Un poco de historia
Cintas y tarjetas perforadas
Almacenamiento secuencial
Partir desde el principio y recorrer toda la
informacin, hasta el punto donde se encuentra la
que buscamos.
Cintas y discos magntico
Almacenamiento aleatorio
Permiten acceder a cualquier dato almacenado en
un archivo en relativamente poco tiempo.
De acuerdo al tipo de acceso en
C se clasifican en:
1. Dependiendo de la direccin del flujo de datos:
De entrada: los datos se leen por el programa
desde el archivo.
De salida: los datos se escriben por el programa
hacia el archivo.
De entrada/salida: los datos pueden se escritos o
ledos.
2. Dependiendo del tipo de valores permitidos a
cada byte:
De texto: slo estn permitidos ciertos rangos de
valores para cada byte. Por ejemplo, el valor
hexadecimal 0x1A marca el fin de archivo. Si
abrimos un archivo en modo texto, veremos un
byte con ese valor, aunque el archivo sea ms
largo.
Binarios: estn permitidos todos lo valores para
cada byte. En estos archivos el final del fichero
se detecta de otro modo, dependiendo del
soporte y del sistema operativo. La mayora de
las veces se hace guardando la longitud del
fichero. Se usan para almacenar valores enteros,
o en coma flotante, o imgenes, etc.
3. Segn el tipo de acceso:
Archivos secuenciales: imitan el modo de
acceso de los antiguos archivos secuenciales
almacenados en cintas magnticas.
Archivos de acceso aleatorio: permiten acceder
a cualquier punto de ellos para realizar lecturas
y/o escrituras.
4. Segn la longitud de registro:
Longitud variable: se considera cada byte como
un registro. Tambin puede ser que lea o
escriba en los bytes necesarios en cada
ocasin. Otro caso es cuando se usa una marca
para el final de registro. En estos casos cada
registro es de longitud diferente.
Longitud constante: en estos archivos los datos
se almacenan en forma de registro de tamao
contante. En C usaremos estructuras para definir
los registros. C dispone de funciones de librera
adecuadas para manejar este tipo de ficheros.
Mixtos: en ocasiones pueden crearse archivos
que combinen los dos tipos de registros.
Es posible crear archivos combinando cada una de
estas categoras, por ejemplo:
Archivos Secuenciales de texto de longitud de registro
variable, que son los tpicos archivos de texto.
Archivos de acceso aleatorio binarios de longitud de
registro constante, normalmente usados en bases de
datos.
Archivos secuenciales binarios de longitud de registro
constante, etc.
Declaracin en C
Funciones estndar
Para abrir el archivo se utiliza la funcin:
fopen
Parmetros
t: modo texto. Normalmente es el
modo por defecto. Se suele omitir.
b: modo binario.
Nombre del archivo que
contiene el archivo
Es una cadena que indica el modo en que se abrir el
archivo: lectura o escritura, y el tipo de datos que
contiene: de texto o binarios.
r:
slo lectura. El archivo debe existir.
w: se abre para escritura, se crea un archivo
nuevo o se sobrescribe si ya existe.
a: aadir, se abre para escritura, el cursor se
sita al final del archivo. Si no existe, se crea.
r+: lectura y escritura. El archivo debe existir.
w+: lectura y escritura, se crea un archivo nuevo
o se sobrescribe si ya existe.
a+: aadir, lectura y escritura, el cursor se sita al
final del fichero. Si el fichero no existe, se crea.
Funciones y tipos en C
Tipo FILE:
C define la estructura de datos FILE en el archivo de
cabecera "stdio.h" para el manejo de archivos.
La
definicin
de
sta
estructura
depende
del
compilador, pero en general mantienen un campo con
la posicin actual de lectura/escritura, un buffer para
mejorar las prestaciones de acceso al fichero y algunos
campos para uso interno.
Funcin fopen:
Sintaxis:
FILE *fopen(char *nombre, char *modo);
sta funcin sirve para abrir y crear archivos en
disco. El valor de retorno es un puntero a una
estructura FILE.
Funcin fclose:
Sintaxis:
int fclose(FILE *fichero);
Es importante cerrar los archivos abiertos antes de cerrar la aplicacin. Al
cerrar un archivo almacena los datos que an estn en el buffer de memoria,
y actualiza algunos datos de la cabecera del archivo. Adems permite que
otros programas puedan abrir el archivo para su uso.
Un valor de retorno cero indica que el archivo ha sido cerrado correctamente,
si ha habido algn error, el valor de retorno es la constante EOF.
Funcin fgetc:
Sintaxis:
int fgetc(FILE *fichero);
Esta funcin lee un carcter desde un fichero.
El valor de retorno es el carcter ledo como un
unsigned char convertido a int. Si no hay ningn
carcter disponible, el valor de retorno es EOF. El
parmetro es un puntero a una estructura FILE del
fichero del que se har la lectura.
Funcin fputc:
Sintaxis:
int fputc(int caracter, FILE *fichero);
Esta funcin escribe un carcter a un archivo.
El valor de retorno es el carcter escrito, si la operacin
fue completada con xito, en caso contrario ser EOF.
Los parmetros de entrada son el carcter a escribir,
convertido a int y un puntero a una estructura FILE del
archivo en el que se har la escritura.
Funcin feof:
Sintaxis:
int feof(FILE *fichero);
Esta funcin sirve para comprobar si se ha alcanzado el final del
archivo. Muy frecuentemente deberemos trabajar con todos los
valores almacenados en un archivo de forma secuencial, la forma
de leer todos los datos de un archivo es leer mientras no se detecte
el fin del archivo.
El valor de retorno es distinto de cero slo si no se ha alcanzado el
fin de fichero. El parmetro es un puntero a la estructura FILE del
fichero que queremos verificar.
Funcin rewind:
Sintaxis:
Void rewind(FILE *fichero)
Hace referencia a que para volver al principio de un archivo
almacenado, haba que rebobinar. Eso es lo que hace sta funcin,
sita el cursor de lectura/escritura al principio del archivo.
El parmetro es un puntero a la estructura FILE del archivo que
queremos rebobinar.
Ejemplo
#include <stdio.h>
int main(){
FILE *fichero;
fichero = fopen("ejemplo1.c", "r");
while(!feof(fichero)) fputc(fgetc(fichero), stdout);
rewind(fichero);
while(!feof(fichero)) fputc(fgetc(fichero), stdout);
fclose(fichero);
getchar();
return 0;}
Funcin fgets:
Sintaxis:
char *fgets(char *cadena, int n, FILE *fichero);
Esta funcin est diseada para leer cadenas de caracteres. Leer hasta n-1
caracteres o hasta que lea un retorno de lnea. El parmetro n nos permite limitar
la lectura para evitar desbordar el espacio disponible en la cadena.
El valor de retorno es un puntero a la cadena leda, si se ley con xito, y es
NULL si se detecta el final del archivo o si hay un error. Los parmetros son: la
cadena a leer, el nmero de caracteres mximo a leer y un puntero a una
estructura FILE del fichero del que se leer.
Funcin fputs:
Sintaxis:
int fputs(const char *cadena, FILE *stream);
La funcin
fputs
escribe una cadena en un fichero. No se aade el
carcter de retorno de lnea ni el carcter nulo final.
El valor de retorno es un nmero no negativo o EOF en caso de
error. Los parmetros de entrada son la cadena a escribir y un
puntero a la estructura FILE del fichero donde se realizar la
escritura.
Funcin fread:
Sintaxis:
size_t fread(void *puntero, size_t tamao, size_t
nregistros, FILE *fichero);
Esta funcin trabaja con registros de longitud constante. Es capaz
de leer desde un archivo uno o varios registros de la misma longitud
y a partir de una direccin de memoria determinada. El usuario es
responsable de asegurarse de que hay espacio suficiente para
contener la informacin leda.
El valor de retorno es el nmero de registros ledos, no el nmero
de bytes.
size_t fread(void *puntero, size_t tamao,
size_t nregistros, FILE *fichero);
Los parmetros son:
Un puntero a la zona de memoria donde se
almacenarn los datos ledos,
El tamao de cada registro,
El nmero de registros a leer y un puntero a la
estructura FILE del fichero del que se har la lectura.
Funcin fwrite:
Sintaxis:
size_t fwrite(void *puntero, size_t tamao,
size_t nregistros, FILE *fichero);
Esta funcin trabaja con registros de longitud constante y forma
pareja con fread. Es capaz de escribir hacia un archivo uno o varios
registros de la misma longitud almacenados a partir de una
direccin de memoria determinada.
El valor de retorno es el nmero de registros escritos, no el
nmero de bytes.
size_t fwrite(void *puntero, size_t tamao,
size_t nregistros, FILE *fichero);
Los parmetros son: un puntero a la zona de memoria donde se
almacenarn los datos ledos, el tamao de cada registro, el
nmero de registros a leer y un puntero a la estructura FILE del
fichero del que se har la lectura.
Ejemplo en C
Funcin fprintf:
Sintaxis:
int fprintf(FILE *fichero, const char *formato, ...);
La funcin fprintf funciona igual que printf en
cuanto a parmetros, pero la salida se dirige a un
fichero en lugar de a la pantalla.
Funcin fscanf:
Sintaxis:
int fscanf(FILE *fichero, const char *formato, ...);
La funcin
fscanf
funciona igual que
scanf
en cuanto a parmetros, pero la entrada se
toma de un fichero en lugar del teclado.
Funcin fflush:
Sintaxis:
int fflush(FILE *fichero);
Esta funcin fuerza la salida de los datos acumulados en el
buffer de salida del archivo. Para mejorar las prestaciones
del manejo de archivos se utilizan buffers, almacenes
temporales de datos en memoria, las operaciones de salida
se hacen a travs del buffer, y slo cuando el buffer se llena
se realiza la escritura en el disco y se vaca el buffer.
Funciones en C para archivos de acceso aleatorio
Funcin fseek:
Sintaxis:
int fseek(FILE *fichero, long int
desplazamiento,
int origen);
Esta funcin sirve para situar el cursor del fichero para leer o
escribir en el lugar deseado.
El valor de retorno es cero si la funcin tuvo xito, y un valor distinto
de cero si hubo algn error.
int fseek(FILE *fichero, long int
desplazamiento, int origen);
Los parmetros de entrada son: un puntero a
una estructura FILE del fichero en el que
queremos
cambiar
el
cursor
de
lectura/escritura, el valor del desplazamiento
y el punto de origen desde el que se
calcular el desplazamiento.
El parmetro origen puede tener tres posibles valores:
SEEK_SET el desplazamiento se cuenta desde el
principio. El primer byte del archivo tiene un
desplazamiento cero.
SEEK_CUR el desplazamiento se cuenta desde la
posicin actual del cursor.
SEEK_END el desplazamiento se cuenta desde el
final del archivo.
Funcin ftell:
Sintxis:
long int ftell(FILE *fichero);
La funcin ftell sirve para averiguar la posicin actual del cursor de
lectura/escritura de un archivo.
El valor de retorno ser esa posicin, o -1 si hay algn error.
El parmetro de entrada es un puntero a una estructura FILE del archivo del
que queremos leer la posicin del cursor de lectura/escritura.
Bibliografa recomendada
Aaron N. Tenebaum, Estructura de Datos En C, Ed. Prentice
Cair/Guardati, Estructura de Datos,
Ed. Mc. Graw Hill
Seymour Lipschutz, Estructura de Datos, Ed. Mc.Graw Hill
Jorge A. Villalobos S, Diseo y Manejo de Estructura de Datos, Ed.
Mc. Graw Hill
Fundamentals of Computer Algoritmits, Ed. Computer Science
Press Inc.
Computer Algoriting, Ed. Addison-Wesley
MENU