数据结构学习笔记(二)

版权声明:转载请注明出处 https://blog.csdn.net/ty13572053785/article/details/85113638

一、栈

      栈是一种操作受限的数据结构,只支持入栈和出栈操作。后进先出(LIFO)是它的最大的特点。栈既可以通过数组实现,也可以通过链表实现。不管基于数组还是链表,入栈、出栈的时间复杂度都为O(1)。

二、队列

      队列最大的特点是先进先出,主要的两个操作是入队和出队。更栈一样,它既可以用数组来实现,也可以用链表拉实现。用数组实现的较顺序队列,用链表实现的叫链式队列。用数组实现队列的时候,会有数据搬移操作,要想解决数据搬移问题,就需要使用循环队列。

三、无锁并发队列的实现

      无锁是一种乐观的策略,它会假设对资源的访问时没有冲突的。无锁策略使用一种比较交换的技术(CAS)来鉴别线程是否发生冲突,一旦检测到冲突发生,就重试当前操作直到没有冲突为止。
无锁的好处:

  • 在高并发的情况下,它比有锁的程序拥有更好的性能。
  • 它天生是死锁免疫的。

猜你喜欢

转载自blog.csdn.net/ty13572053785/article/details/85113638