堆栈在数据结构中的应用
堆栈是后进先出(LIFO)数据结构。该数据结构在不同方面具有一些重要的应用。这些如下-
表达式处理-
后缀的前缀或前缀转换的前缀-
堆栈可用于将某些中缀表达式转换为其等效的后缀或前缀。这些后缀或前缀表示法在计算机中用于表达某些表达式。这些表达式对infix表达式不太熟悉,但是它们也具有一些很大的优点。我们不需要维护运算符的顺序和括号。
后缀或前缀评估-
转换为前缀或后缀表示法后,我们必须评估表达式以获取结果。为此,我们还需要堆栈数据结构的帮助。
回溯程序-
回溯是算法设计技术之一。为此,我们将以某种方式下潜,如果这种方式效率不高,则返回到先前的状态并进入其他一些路径。要从当前状态恢复,我们需要存储先前的状态。为此,我们需要堆栈。回溯的一些示例是找到解决KnightTour问题或N-Queen问题等的解决方案。
堆栈的另一个重要用途是在函数调用和返回过程中。当我们从另一个函数调用一个函数时,该函数调用语句可能不是第一条语句。调用函数后,我们还必须从函数区域返回到我们离开控件的地方。因此,我们要恢复我们的任务,而不是重新启动。因此,我们将程序计数器的地址存储到堆栈中,然后转到函数体执行它。执行完成后,它将从堆栈中弹出地址,并将其分配到程序计数器中以再次执行任务。