数据结构和算法分析

【数据结构与算法】队列

2020-02-08  本文已影响0人  Lee_DH

一、是什么

一种先进先出线性表数据结构,只支持入队和出队操作

二、使用场景

三、工作原理

队尾插入元素,队头删除元素

四、队列类型

四、实现

type list []int

func NewList() *list {
    newList := make(list, 0)
    return &newList
}

func listPush(newList *list, a ...int) {
    *newList = append(*newList, a...)
}

func listPop(newList *list) (listObj int) {
    length := len(*newList)
    if length <= 0 {
        return
    }
    listObj = (*newList)[0]
    *newList = (*newList)[1:length]
    return
}

rpush + lpop = list(队列)

五、优劣

  1. 不涉及到数组搬移时,出队和入队的时间复杂度都为 O(1)
  2. 操作受限,使用比较可控,不容易出错(和数组、链表相比较
  1. 在内存中,队列结构里的数据大小和生命周期是固定的,缺乏灵活性

六、替代性技术

上一篇下一篇

猜你喜欢

热点阅读