关联数组(associative array)
?? 關聯數組(associative array )是一種常用的抽象數據類型。它有很多別名,例如associative container , map , mapping , dictionary , finite map , table,index 等。它的特點是由一個關鍵字和其他各種屬性組成的集合。典型的操作包括插入,刪除和查找等。而用于描述關聯數組最常用的是哈希表 (hash table )和自平衡二叉搜索樹(self-balanced binary search tree )(包括紅黑樹 (red-black tree )和avl樹 (avl tree ),有時可能使用B-tree (適用于關聯數組太大的情況,比如數據庫等))。哈希表和自平衡二叉搜索樹的性能對比如下:平均情況下哈希表的查找和插入操作的復雜度為O(1),而自平 衡二叉搜索樹的查找和插入操作的復雜度為O(log(n))。而最壞情況下平衡二叉搜索樹的查找和插入操作的復雜度仍為O(log(n)),而哈希表的查 找和插入操作的復雜度可能達到O(n)。
?? 相關鏈接直接參考維基百科中內容即可,另有一篇中文的文章也不錯,鏈接:
?? 紅黑樹的介紹和實現
?? 由于c語言標準庫中缺乏對各種抽象數據類型的支持,c語言下對各種抽象數據類型的操作比較麻煩,從網上找了一些C語言的數據結構庫,感興趣的可以看看:
?? GDSL
?? GNUlib
?? sglib
?? attractive chaos 's klib
?? c-geniric-library
?? cbase
?? libwayne
?? uthash (hash table)
?? ccan
總結
以上是生活随笔為你收集整理的关联数组(associative array)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 近百家公司高级运维的面试题汇总
- 下一篇: MFC串口通信串口指示灯的实现