常用数据结构
2016-06-15 00:00
197 查看
栈(Stack)
基本操作
推入(push)弹出(pop)
基本特点
先进后出,后进先出。
除头尾节点以外,每个元素只有一个前驱和一个后继。
队列(Queue)
基本操作
入队(Enqueue)出队(Dequeue)
基本特点
先进先出只允许在队列的后端(rear)进行插入操作,在前端(front)进行删除操作
常见实现
单向队列 - 使用链表作为基本数据结构,不存在伪溢出问题,没有长度限制,但插入和读取的时间代价较高。循环队列 - 更简单防止伪溢出,但队列大小是固定的。
双端队列(deque,double-ended queue)
基本操作
头部插入(push,cons)尾部插入(inject,snoc)
头部删除(pop)
尾部删除(eject)
查看头部(peek first)
查看尾部(peek last)
基本特点
可以在队列任意一端入队和出队。链表(Linked List)
基本操作
插入(O(1))删除(O(1))
查找(O(N))
基本特点
是一种线性表,但不会顺序地存储数据,而是在每个节点存下下一节点的指针(Pointer)。常见实现
单向链表双向链表
循环链表
跳跃列表(跳表,Skip List)
散列表(Hash Table)
基本特点
以散列函数计算获得的值作为关键字存取内存中的数据结构。相关文章推荐
- 数据结构—链表的基本操作 子函数的方式
- 数据结构 —栈的创建、出、进栈
- 数据结构—逆序输出
- JavaScript数据结构排序
- 数据结构学习--快速排序算法
- 数据结构与算法之十 提高二叉搜索树的效率
- 数据结构与算法之十 提高二叉搜索树的效率
- 数据结构与算法之十 提高二叉搜索树的效率
- Redis数据结构
- Java数据结构之简单的链表的实现
- 数据结构之二叉搜索树
- HDUOJ_1754_I Hate It_线段树
- 数据结构实验之链表三:链表的逆置
- 数据结构之红黑树
- 杨辉三角队列方式
- Map的数据结构
- AC自动机的一种简单实现
- 浅谈算法和数据结构: 十一 哈希表
- 浅谈算法和数据结构: 十二 无向图相关算法基础
- 浅谈算法和数据结构: 十 平衡查找树之B树