常见数据结构

Posted colima

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见数据结构相关的知识,希望对你有一定的参考价值。

1. 链表 

    链表是一种非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的;链表由一系列节点组成,每个节点包含存储数据元素的数据域和存储下一节点地址的指针域。由于不必按顺序存储,链表在插入元素时可以达到O(1),但在查找某一元素时为O(n);
    使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理;但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大;
    单向链表(链表链接方向单向,访问要从头部开始顺序读取);
    双向链表(每个数据节点中都有两个指针,一个指向直接前驱,一个指向直接后继);
    循环链表(表中最后一个节点的指针域指向头节点,整个链表形成一个环);

2. 队列

    先进先出的线性表结构,插入在一端,删除在另一端;

3. 栈

    先进后出的线性表结构,只能在一端进行插入和删除操作

4. 哈希表

    它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度;这个映射函数叫做散列函数,存放记录的数组叫做散列表;

5. 堆

    看作一棵树的数组对象,堆中某个节点的值总是不大于或不小于其父节点的值,堆总是一棵完全二叉树;根节点最大的叫大根堆,根节点最小的叫小根堆;

6. 优先队列

    优先队列中,元素被赋予优先级,当访问元素时,具有最高优先级的元素最先删除;常采用堆数据结构来实现;

7. 字典树

    是哈希树的变种,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高;

8. 树(二分查找、AVL、红黑树)

9. 图(有向图,无向图)






以上是关于常见数据结构的主要内容,如果未能解决你的问题,请参考以下文章

数据结构面试常见问题

生物信息学常见数据格式

常见数据结构与算法整理总结(下)

Java 中常见的数据结构

Python常见数据结构--列表

python常见数据结构整理