{"id":13420492,"url":"https://github.com/fmela/libdict","last_synced_at":"2025-03-15T06:33:21.272Z","repository":{"id":809768,"uuid":"516847","full_name":"fmela/libdict","owner":"fmela","description":"C library of key-value data structures.","archived":false,"fork":false,"pushed_at":"2020-03-22T05:30:55.000Z","size":707,"stargazers_count":282,"open_issues_count":11,"forks_count":72,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-07-31T22:55:25.734Z","etag":null,"topics":["associative-array","avl-tree","binarytree","c","data-structures","dictionary","hashing","hashtable","iterator","key-value","map","redblacktree","skiplist","splay-trees","treaps","tree"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fmela.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}},"created_at":"2010-02-13T20:16:56.000Z","updated_at":"2024-05-14T13:00:55.000Z","dependencies_parsed_at":"2022-08-16T11:00:15.539Z","dependency_job_id":null,"html_url":"https://github.com/fmela/libdict","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmela%2Flibdict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmela%2Flibdict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmela%2Flibdict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmela%2Flibdict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fmela","download_url":"https://codeload.github.com/fmela/libdict/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221553287,"owners_count":16841999,"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":["associative-array","avl-tree","binarytree","c","data-structures","dictionary","hashing","hashtable","iterator","key-value","map","redblacktree","skiplist","splay-trees","treaps","tree"],"created_at":"2024-07-30T22:01:34.775Z","updated_at":"2024-10-26T16:30:46.219Z","avatar_url":"https://github.com/fmela.png","language":"C","funding_links":[],"categories":["TODO scan for Android support in followings"],"sub_categories":[],"readme":"# libdict\n\n[![Build Status](https://travis-ci.org/fmela/libdict.svg?branch=master)](https://travis-ci.org/fmela/libdict)\n\nlibdict is a C library that provides the following data structures with efficient insert, lookup, and delete routines:\n\n* [height-balanced (AVL) tree](http://en.wikipedia.org/wiki/AVL_tree)\n* [red-black tree](http://en.wikipedia.org/wiki/Red-black_tree)\n* [splay tree](http://en.wikipedia.org/wiki/Splay_tree)\n* [weight-balanced tree](https://en.wikipedia.org/wiki/Weight-balanced_tree)\n* [path-reduction tree](https://cs.uwaterloo.ca/research/tr/1982/CS-82-07.pdf)\n* [treap](http://en.wikipedia.org/wiki/Treap)\n* [hashtable using separate chaining](http://en.wikipedia.org/wiki/Hashtable#Separate_chaining)\n* [hashtable using open addressing with linear probing](http://en.wikipedia.org/wiki/Hashtable#Open_addressing)\n* [skip list](https://en.wikipedia.org/wiki/Skip_list)\n\nAll data structures in this library support insert, search, and remove, and have bidirectional iterators. The sorted data structures (everything but hash tables) support near-search operations: searching for the key greater or equal to, strictly greater than, lesser or equal to, or strictly less than, a given key. The tree data structures also support the selecting the nth element; this takes linear time, except in path-reduction and weight-balanced trees, where it only takes logarithmic time.\n\nThe API and code are written with efficiency as a primary concern. For example, an insert call returns a boolean indicating whether or not the key was already present in the dictionary (i.e. whether there was an insertion or a collision), and a pointer to the location of the associated data. Thus, an insert-or-update operation can be supported with a single traversal of the data structure. In addition, almost all recursive algorithms have been rewritten to use iteration instead.\n\n## License\n\nlibdict is released under the simplified BSD [license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmela%2Flibdict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmela%2Flibdict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmela%2Flibdict/lists"}