您的位置:首页 > 理论基础 > 数据结构算法

常用数据结构

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)

基本特点

以散列函数计算获得的值作为关键字存取内存中的数据结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: