常见数据结构
Posted colima
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见数据结构相关的知识,希望对你有一定的参考价值。
1. 链表
链表是一种非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的;链表由一系列节点组成,每个节点包含存储数据元素的数据域和存储下一节点地址的指针域。由于不必按顺序存储,链表在插入元素时可以达到O(1),但在查找某一元素时为O(n);
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理;但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大;
单向链表(链表链接方向单向,访问要从头部开始顺序读取);
双向链表(每个数据节点中都有两个指针,一个指向直接前驱,一个指向直接后继);
循环链表(表中最后一个节点的指针域指向头节点,整个链表形成一个环);
2. 队列
先进先出的线性表结构,插入在一端,删除在另一端;
3. 栈
先进后出的线性表结构,只能在一端进行插入和删除操作
4. 哈希表
它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度;这个映射函数叫做散列函数,存放记录的数组叫做散列表;
5. 堆
看作一棵树的数组对象,堆中某个节点的值总是不大于或不小于其父节点的值,堆总是一棵完全二叉树;根节点最大的叫大根堆,根节点最小的叫小根堆;
6. 优先队列
优先队列中,元素被赋予优先级,当访问元素时,具有最高优先级的元素最先删除;常采用堆数据结构来实现;
7. 字典树
是哈希树的变种,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高;
8. 树(二分查找、AVL、红黑树)
9. 图(有向图,无向图)
以上是关于常见数据结构的主要内容,如果未能解决你的问题,请参考以下文章