`

关联数组(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

    关联数组 Map和Array的组合可保持键的顺序。 用法 var AssociativeArray = require ( 'associative-array' ) ; var arr = new AssociativeArray ( ) ; arr . push ( 'key' , { value : 'value' } ) ; arr . push ( '...

    PHP JSON格式数据交互实例代码详解

     “名称/值”对的集合,在PHP中可以理解为关联数组 (associative array)。  值的有序列表(An ordered list of values)。在PHP中可以理解为普通数组(array)。  对象是一个无序的“‘名称/值’对”集合。一个...

    ASP Associative Array Class-开源

    一个 ASP 类,可以像在 PHP 中一样创建简单的关联数组; 您可以以编程方式管理任何结构化数据; 该类还提供了从 MySQL 或 MSAccess 数据库加载数据或将关联数组导出到 XML 的方法。

    Associative array Delphi class-开源

    实现关联数组的Delphi类。 键可以是字符串或整数。 密钥存储在红黑树中。 数组可以包含TObjects或它的后代。

    jsonchecker

    不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 * 值的有序列表(An ...

    第四章-字典

    字典,又称为符号表( symbol table )、关联数组( associative array )或映射(map), 是一种用于保存键值对( key-value pair )的抽象数据结构。 4.1 字典的实现 24 Redis的字典使用哈希表作为底层实现,一个哈希表里面...

    Linux 内核数据结构:Radix 树

     首先说明一下什么是 radix tree ,Radix tree 是一个 压缩 trie, trie 是一种通过保存关联数组(associative array)来提供 关键字-值(key-value) 存储与查找的数据结构。通常关键字是字符串,不过也可以是...

    JSON 数据格式详解

    不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 2. 值的有序列表(An ...

    php学习 数组课件第1/2页

    关联数组:关联(associative)关联以字符串做索引值,索引值为列名,用语访问列的数据。 数组通常用赋值的方式 一般情况下数组赋值有两种方式: $a[1]=”dsadsadsa”; $b[2]=”dsadsadsad”; 使用array函数: $a=...

    实例详解JSON数据格式及json格式数据域字符串相互转换

    不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 2. 值

    Json-lib 是一个 Java 类库

    不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 (hash table),有键列表(keyed list),或者关联数组 (associative array)。 在 Java 语言中,我们可以...

    详解PHP对数组的定义以及数组的创建方法

    传统上把数组(array)定义为一组有某种共同特性的元素,这里的共同特性包括相似性(车模、棒球队、水果类型等)和类型(例如所有元素都是字符串...这些键可以是数值(numerical) 健或关联(associative)健。数值键与

    JavaScript 对象深入学习总结(经典)

    JavaScript对象也可以称作一种数据结构,正如我们经常听说的“散列(hash)”、“散列表(hashtable)”、“字典 (dictionary)”、“关联数组(associative array)”。 JavaScript中对象可以分为三类: ①内置...

    深入学习JavaScript对象

    JavaScript对象也可以称作一种数据结构,正如我们经常听说的“散列(hash)”、“散列表(hashtable)”、“字典 (dictionary)”、“关联数组(associative array)”。 JavaScript中对象可以分为三类: ①内置...

    JSON-Parser:JSON解析器

    “名称/值”对的集合不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。...

    计算机专业词汇.txt

    array 数组 arrow operator 箭头操作符 ASP(Active Server Page)活动服务器页面 ASP.NET worker process ASP.NET工作者进程 assembly 装配件、配件 assembly language 汇编语言 assembly manifest 装配件清单 assert...

    JSON数据格式

    不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 { "name":"smith", ...

    stl数据结构.docx

    常用的数据结构有array(数组)、vector(向量)、list(列表)、tree(树)、stack(栈)、queue(队列)、hash table(散列表)、set(集合)、map(映射表)等等。这些数据结构按结构可以分为序列式(sequence)...

Global site tag (gtag.js) - Google Analytics