Skip to content

weiranyi/DSA-Four-Stacks-Queues

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一、栈:FILO

栈的定义:

  • 是一种数据结构
  • 是数组操作的子集合
  • 只能从栈的一端添加元素,也只能从栈的一端取出元素,这一端被称之为栈顶

栈的时间复杂度:

  • int getSize(); O(1)
  • boolean isEmpty(); O(1)
  • void push(E e); O(1) 均摊
  • E pop(); O(1) 均摊
  • E peek();O(1)

收获:

  • 不要完美主义,掌握好度
  • 数据结构与算法的主要目标是,理解各个数据结构的底层实现

二、队列:FIFO

队列的定义:

  • 队列也是一种线性数据结构
  • 相比数组,队列对应的操作是数组的子集
  • 队列只能从一端入(对尾),一端出(对头),就像:排队
  • 时间复杂度:
    int getSize();       O(1)  
    boolean isEmpty();   O(1)
    void enqueue(E);     O(1) 均摊
    E dequeue();         O(n)
    E getFront();        O(1)
    

数组队列VS循环队列

  • 循环队列主要弥补了数组队列在出对操作时时间复杂度为O(n)的短板,使得复杂度变成均摊的O(1)

Releases

No releases published

Packages

No packages published

Languages