栈和队列
学习目标本节我们将初步认识栈和队列,栈和队列是限定插入和删除只能在表的“端点”进行的线性表。
开始学习 01 栈是什么?
限定仅在表尾进行插入和删除操作的线性表,表尾—栈顶,表头—栈底,不含元素的空表称为空栈。
打个形象的比方,栈就像一个羽毛球筒,羽毛球就是一个个元素,每次我们取球都只能从最顶部取(不可能直接从球筒中间取吧,除非你在球筒中间开个洞),放球也一样,也只能从顶部放。
这里的取球就对应栈的出栈/弹出操作,注意不是栈的删除操作,区别就是前者的返回值会返回被弹出的元素,而后者则不会。
特点:
先进后出(FILO)或后进先出(LIFO)。就是说先进栈的元素总是后出来。现在不理解这句话的意思没关系,后面学栈的删除和添加元素的时候就会理解这句话的涵义
02 队列是什么?
队列是限定只能在表的一端进行插入(入队),而在表的另一端进行删除(出队)的线性表
队尾(rear) ——允许插入的一端
队首(front) ——允许删除的一端
队列其实很好理解,从字面意思来看,就像我们平时排队拿饭,我们总是从队尾加入队伍(插入元素),在队首取完饭的同学就从队伍离开(删除元素),当然这里要基于不出现插队这种不文明行为。
特点:
与栈不同,队列的特点是先进先出(FIFO),即先进入的元素总是最先出队。
●数据结构与算法之链表的一元多项式相加
●数据结构与算法之双向循环链表
●数据结构与算法之循环链表
多点关注 多份关爱 仙女都在看点点点,赞和在看都在这儿!