栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是栈的顶(top),基本操作有push(进栈)和pop(出栈),LIFO(先进后出)表。
栈的实现,arraylist、linkedlist或stack类。
栈的应用:数字表达式求值,中缀表达式转为后缀表达式,后缀表达式根据栈进行计算。
队列(queue)也是表,遵守先进先出的原则,FIFO(先进先出)表,入队(enqueue)在队尾(rear)插入一个元素,出队(dequeue)在表的开头(front)删除一个元素。
队的实现,由数组和linkedlist。
循环队列,解决假溢出问题,队满和队空的区别,1.设置标志变量,2.留一个空位置(rear+1)%queuesize==front为队满。