栈的定义 : 栈是限定仅在表头进行插入和删除操作的线性表。栈被称为先进后出(Last In First Out)的线性表,简称LIFO表
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素 
栈的存储结构 :
栈的顺序存储结构成为顺序栈,由于顺序栈必须预先分配存储空间,因此在应用中要考虑溢出和空间浪费的问题 为了克服顺序存储带来的空间浪费和溢出问题,可以使用链式存储结构来存储栈。栈的链式存储结构称为链栈 

进出栈示意图
栈和队列

栈的应用非常广泛,只要满足 LIFO 原则都可以使用栈作为数据结构:
编译器中语法检查:判断括号匹配,表达式运算,字符串回文,进制转换,递归 

进出栈示意图二
栈和队列

队列的定义:一种受限的线性表,只允许在表的一端进行元素插入,另一端进行删除

在队列中,通常把元素的插入成为入队,把元素的删除称为出队,队列的概念与现实生活的排队一样,新来的成员加入队尾,排在队列前面的先离开队伍,即先进先出。因此又称为先进先出(First In First Out)FIFO表 
队列存储结构 :
顺序队列: 

栈和队列

发表评论

电子邮件地址不会被公开。 必填项已用*标注