基础数据结构--背包,队列,栈

抽象数据类型(ADT):泛指除基本数据类型以外的数据类型。什么叫类型?就是一类数据。基本数据类型被认做是最基本的,不可再划分的数据类型,一般就是整型、浮点型、以及字符型等。抽象数据类型是由若干基本数据类型归并之后形成的一种新的数据类型,这种类型由用户定义,功能操作比基本数据类型更多,一般包括结构体和类。其实说白了,抽象数据类型就是把一些有一定关联的基本数据类型打包,然后当做新的数据类型使用
背包(Bag),队列(Queue)和栈(Stack)都属于集合类抽象数据类型,它们的不同之处在于删除或访问对象的顺序不同,下面简单总结下这三种数据类型:

背包(Bag):是一种不支持从中删除元素的集合数据类型,它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素,使用背包就说明元素的处理顺序不重要,可以想象一个背包,往里面放了N个小球,在取球的时候手伸进背包是随机取出来的,通常这样的数据结构用来进行计算平均值等对元素顺序没有要求的算法;
API:
基础数据结构--背包,队列,栈_第1张图片
队列(Queue):是一种先进先出(FIFO)的集合数据类型,联想隧道通车和各种排队场面,先进入队列,则先出队列,后进入就后出队列;
API:
基础数据结构--背包,队列,栈_第2张图片
栈(Stack):是一种后进先出(LIFO)的集合数据类型,联想桌上的一叠文件,总是先取最上面的,依次往下取,当有新的文件的时候总是放在最上面。电子邮件收件箱就是一个类似栈的结构:在收件时将邮件压入(push)最顶端,在取信是从最顶端弹出(pop);
API:
基础数据结构--背包,队列,栈_第3张图片

你可能感兴趣的:(算法基础)