Coder Social home page Coder Social logo

mrdave1999 / librarylist Goto Github PK

View Code? Open in Web Editor NEW
12.0 3.0 0.0 189 KB

Esta biblioteca proporciona funciones para poder trabajar con listas de forma genérica (es decir, tener listas de objetos de cualquier tipo).

License: MIT License

C 86.00% C++ 12.78% Makefile 1.22%
c estructura-de-datos iterator foreach library

librarylist's Introduction

LibraryList Generic

LibraryList LibraryList

LibraryList es una biblioteca que permite usar diversas estructuras de datos de forma genérica, esto quiere decir que en un programa se puede tener una lista de objetos de tipo Vehículo y en otra objetos de tipo Conductor. Sin embargo, cada elemento de la lista deben ser del mismo tipo.

Las estructuras o tipos que maneja la biblioteca son:

  • LinkedList
    • Implementación: Lista doblemente enlazada.
  • LinkedQueue
    • Implementación: Lista enlazada simple.
  • LinkedStack
    • Implementación: Lista enlazada simple.
  • ArrayList
    • Implementación: Arrays.
  • ArrayQueue
    • Implementación: Arrays circular.
  • ArrayStack
    • Implementación: Arrays.

Requisitos

Para poder compilar un programa usando esta biblioteca, se necesita tener un compilador de C que cumpla con el estándar C11, de lo contrario, no funcionará.

¡No intentes usar esta biblioteca en C++! ¡No es compatible!

Instalación

Necesitas descargar:

Después de haber descargado las herramientas, agregaremos la carpeta lst en el directorio include, que venga por defecto cuando instalemos el compilador. El archivo liblist.a debe estar añadido en la carpeta lib.

Para usar las funciones que traiga la biblioteca en un programa fuente, simplemente incluimos este archivo de cabecera:

#include <lst/List.h>

Por último, se le debe avisar al enlazador el nombre de la biblioteca para que pueda buscar las funciones previamente compiladas:

gcc prueba.c -llist

Nota: Para obtener el proyecto completo, debes descargar el archivo source.rar.

Documentación API

En este hilo podrás ver la descripción, parámetros, valor de retorno y un ejemplo de uso de cada función.

Uso

1.- Ejemplo: Mostrar en pantalla los nombres de cada persona.

/* En este ejemplo la macro "add" añade elementos a una lista doblemente enlazada. */

#include <stdio.h>
#include <lst/List.h>

int main(void)
{
	/* Creamos la lista vacía */
	LinkedList* listaPersonas = newLinkedList();
	
	printf("Elementos: %d\n", size(listaPersonas));
	
	/* Añadimos elementos a la lista */
	add(listaPersonas, "Roberto Placencio");
	add(listaPersonas, "Guillermo Rivera");
	add(listaPersonas, "Joel Delgado");
	add(listaPersonas, "Johan Sanchez");
	
	/* Imprimimos los elementos de la lista */
	foreach(char, nombre, listaPersonas)
		printf("%s\n", nombre);
	
	/* Liberamos los elementos de la lista y 
		también el objeto al que apuntaba listaPersonas 
	*/
	delete(listaPersonas);
	return 0;
}

2.- Ejemplo: Muestra en pantalla los números del 1 al 4.

/* En este ejemplo la macro "add" añade elementos a un arreglo dinámico. */

#include <stdio.h>
#include <lst/List.h>

int main(void)
{
	/* Creamos la lista vacía */
	ArrayList* listaNums = newArrayList();
	
	printf("Elementos: %d\n", size(listaNums));
	
	/* Añadimos elementos a la lista */
	add(listaNums, 1);
	add(listaNums, 2);
	add(listaNums, 3);
	add(listaNums, 4);
	
	/* Imprimimos los elementos de la lista */
	foreach(int, num, listaNums)
		printf("%d\n", *num);
	
	/* Liberamos los elementos de la lista y 
		también el objeto al que apuntaba listNums 
	*/
	delete(listNums);
	return 0;
}

3.- Ejemplo: Mostramos en pantalla solo los números pares.

/* En este ejemplo la macro "enqueue" añade elementos a una lista enlazada simple. */

#include <stdio.h>
#include <lst/List.h>

int main(void)
{
	int nums[] = {1, 2, 3, 4, 5, 6, 7};
	/* Creamos la cola vacía */
	LinkedQueue* listaNums = newLinkedQueue();
	
	for(int i = 0; i != 7; ++i)
	{
		/* Encolamos los elementos pero solo los pares */
		if(i % 2 == 0)
			enqueue(listaNums, nums[i]);
	}
	
	/* Imprimimos los elementos pares */
	foreach(int, num, listaNums)
		printf("%d\n", *num);
	
	delete(listNums);
	return 0;
}

Créditos

librarylist's People

Contributors

mrdave1999 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.