关联数组(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)相关推荐

  1. 将PHP对象转换为关联数组

    我正在将API集成到我的网站,该网站可以使用数组编写代码时处理存储在对象中的数据. 我想要一个快捷方式将对象转换为数组的函数. #1楼 当您从数据库中获取数据作为对象时,您可能想要这样做: // Su ...

  2. php中的关联数组,PHP中的多种关联数组

    考虑以下关联数组 $arr = Array ( [banana] => 2 [cherry] => 1 [orange] => 3 [grapefruit] => 1 [app ...

  3. php遍历关联数组详解,php遍历关联数组

    php 动态关联数组,PHP 反射API,php遍历关联数组,php关联数组的输出 PHP数组详解_计算机软件及应用_IT/计算机_专业资料.PHP数组语法及其应用详细讲解,深入的探讨了数组的用法,以 ...

  4. 【Oracle】record varray (associative array 关联数组) table (nested table type 嵌套表类型)和%type、%rowtype的使用详解

    官方文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnpls/plsql-data-types.html#GU ...

  5. php array 关联数组,php array_merge关联数组

    我正在尝试将一个项目添加到关联数组的开头.我认为最好的方式是使用array_merge,但我有一些奇怪的后果.我从mysql数据库获取产品的id和Name,并将它作为关联数组返回,就像这样(不是实际的 ...

  6. php array 关联数组,php关联数组的输出

    php 动态关联数组,PHP 反射API,php遍历关联数组,php关联数组的输出 php数组学习数组索引数组关联数组_互联网_IT/计算机_专业资料.php数组 php array php索引数组 ...

  7. 打开高效文本编辑之门_Linux awk之关联数组

    Linux awk之关联数组使用案例 声明与简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具.awk通常用来处理结构化(固定格式)的文本文件, awk每接收文件的一行,然后执行相应的命 ...

  8. 《编程珠玑(续)(修订版)》—第2章2.1节Awk中的关联数组

    本节书摘来自异步社区<编程珠玑(续)(修订版)>一书中的第2章,第2.1节Awk中的关联数组,作者[美]Jon Bentley,更多章节内容可以访问云栖社区"异步社区" ...

  9. 如何检查PHP数组是关联数组还是顺序数组?

    PHP将所有数组视为关联数组,因此没有任何内置函数. 谁能推荐一种相当有效的方法来检查数组是否仅包含数字键? 基本上,我希望能够区分以下两者: $sequentialArray = array('ap ...

最新文章

  1. 谈谈被大家过于在乎的性能
  2. DFTug - Getting Started(上篇)
  3. 定时器精度问题及影响
  4. 第二章 使用unittest模块扩展功能测试
  5. 【PAT甲级 - 1028】List Sorting (25分)(模拟,排序)
  6. 数据库工作笔记013---如果存在表则删除表然后创建Mysql_drop table
  7. LeetCode84 Largest Rectangle in Histogram
  8. php20行代码写小偷程序,PHP100教你20行代码写小偷程序
  9. python为什么是蛇的天敌_青蛙和蛇一直是天敌,只知道蛇会吃青蛙,你知不知道青蛙也吃蛇...
  10. 公有云时代企业需要什么样的云平台
  11. hadoop培训笔记
  12. GNSS观测方程及线性组合
  13. 机器学习算法之聚类算法拓展:Mini Batch K-Means算法
  14. FP、FCP、FMP、LCP都是什么P?
  15. Discuz!教程之帖子摘要(简介)截取函数messagecutstr()详解
  16. Android权限——中英文对照表
  17. 会声会影2022中文版主要功能讲解64位安装下载
  18. iOS开发之Runtime常用示例总结
  19. mysql批量替换字段关键词_Mysql批量替换某表里面某个字段的关键字
  20. 基于ZYNQ-7000的AI加速器设计之GP接口的实现

热门文章

  1. 做优化的数据库工程师请参考!CynosDB的计算层设计优化揭秘
  2. Android Jenkins自动化构建之路
  3. 《Linus Torvalds自传》摘录
  4. 再战“超融合”,戴尔、Nutanix绝世好CP
  5. iOS 技术官方 QA
  6. android点滴27:R文件无法加载 R cannot be resolved to a v...
  7. 手机客户端和服务器端通信
  8. 管道过滤器(Pipe-And-Filter)模式
  9. 网吧服务器RAID 0+1硬盘阵列组建图解
  10. java框架mybatis配置文件总结一