{"id":19682361,"url":"https://github.com/devmanu-de/doublist","last_synced_at":"2026-05-20T14:38:44.736Z","repository":{"id":183308100,"uuid":"343174642","full_name":"DevManu-de/doublist","owner":"DevManu-de","description":"A small and simple implementation of a doubly linked list.","archived":false,"fork":false,"pushed_at":"2021-09-28T14:56:21.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-10T05:59:41.963Z","etag":null,"topics":["c","c99","doubly-linked-list","lib","linux"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DevManu-de.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-28T17:58:39.000Z","updated_at":"2021-09-28T14:56:23.000Z","dependencies_parsed_at":"2023-09-04T04:02:31.353Z","dependency_job_id":null,"html_url":"https://github.com/DevManu-de/doublist","commit_stats":null,"previous_names":["devmanu-de/doublist"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevManu-de%2Fdoublist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevManu-de%2Fdoublist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevManu-de%2Fdoublist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevManu-de%2Fdoublist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevManu-de","download_url":"https://codeload.github.com/DevManu-de/doublist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240990861,"owners_count":19889966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","c99","doubly-linked-list","lib","linux"],"created_at":"2024-11-11T18:10:29.001Z","updated_at":"2026-05-20T14:38:39.713Z","avatar_url":"https://github.com/DevManu-de.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# doublist\nA simple implementation of a doubly linked list.\n\n# Usage\ndoublist is equipped with a makefile that allows you to generate a `.a` file.\nTo do so just type `make` in the root directory of the project.\nThe `.a` file will be dropped to the root of the project.\nAll you have to do now is to copy `include/doublist.h` and `libdoublist.a` to your project and you are good to go. (I assume you know how to link it)\n\n## Structures\n\u003e\n\u003e enum node_types (more info in include/doublist.h)\n\u003e\n\u003e struct node (more info in include/doublist.h)\n\u003e \n\u003e struct doublist (more info in include/doublist.h)\n\n\n## doublist_create() \n\u003e Returns a pointer to an empty allocated doublist\n\u003e\n\n## node_create()\n\u003e 1. Argument is a void \\*\n\u003e 2. Argument is an enum node_types. (Use this to determine the type of argument 1)\n\u003e\n\u003e Returns a pointer to a \n\n## node_insert_after()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e 2. Argument is the pointer to a node (If NULL then append to end of doublist)\n\u003e 3. Argument is the pointer to a new node that should be inserted after argument 2\n\u003e\n\u003e Returns NONE (void)\n\n## node_insert_before()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e 2. Argument is the pointer to a node (If NULL then insert to start of doublist)\n\u003e 3. Argument is the pointer to a new node that should be inserted before argument 2\n\u003e\n\u003e Returns NONE (void)\n\n## node_find()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e 2. Argument is the pointer to a node from where to start looking for (If NULL then use argument 6 to determine whether to start from head or tail of doublist)\n\u003e 3. Argument is a void * (Same as node_create)\n\u003e 4. Argument is an enum node_types (Same as node_create)\n\u003e 5. Argument is an unsigned long for comparing the void \\*'s\n\u003e 6. Argument is a direction (FORWARD / BACKWARD) \n\u003e\n\u003e Returns a pointer to the found node that matches the void * and type (NULL if not found)\n\n## node_modify()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e 2. Argument is the pointer to the node that should be changed\n\u003e 3. Argument is the pointer to the node thats values should be used to overwrite argument 2\n\u003e 4. Size of the void * from argument 3\n\u003e 5. If argument 3 should be free'd or not (1 == FREE / 1 != NOT FREE)\n\u003e\n\u003e Returns the pointer to the changed node (Same as argument 2)\n\n## node_remove()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e 2. Argument is the pointer to the node that should be removed\n\u003e \n\u003e Returns a pointer to the node that is now isolated from any list but not free'd\n\n## doublist_free()\n\u003e 1. Argument is the pointer to an allocated doublist that should be free'd and all of its nodes\n\u003e\n\u003e Returns NONE (void)\n\n## node_free()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e 2. Argument is the pointer to an allocated node that should be removed from the list and free'd\n\u003e\n\u003e Returns NONE (void)\n\n## doublist_get_size()\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e \n\u003e Returns the amount of nodes in the list as an integer\n\n## doublist_print()\n\u003e ITS RECOMMENDED TO USE THIS ONLY FOR DEBUG REASONS\n\u003e 1. Argument is the pointer to an allocated doublist\n\u003e\n\u003e Prints all `void *` to stdout based on the type on each node (more info in src/doublist.c)\n\u003e\n\u003e Returns NONE (void)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmanu-de%2Fdoublist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevmanu-de%2Fdoublist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevmanu-de%2Fdoublist/lists"}