我们假设在输出序列中存在这样的情况,即存在i<j<k,使得pi<pk<pj。

首先,我们需要明确栈的操作规则:

  1. 栈是一种先进后出的数据结构,即最后进入栈的元素最先出栈。
  2. 如果一个元素在栈中,那么它之后进入栈的元素不可能比它先出栈。

假设在输入序列中,元素a在元素b之前,但在输出序列中,a在b之后。那么在通过栈操作得到输出序列的过程中,a必然是先进入栈的,而b是在a之后进入栈的。根据栈的操作规则2,b不可能先出栈,所以b一定在a之后出栈。因此,在输出序列中,a一定在b之前。

回到我们的假设,假设在输出序列中存在i<j<k,使得pi<pk<pj。根据上面的推理,我们可以得出结论:在输入序列中,对应的元素pi在pk之前,而pk在pj之前。但这与假设相矛盾,所以不存在这样的情况。

因此,我们可以得出结论:在通过栈操作得到输出序列的过程中,不可能出现存在i<j<k,使得pi<pk<pj的情况。

试证明:若借助栈可由输入序列123…n得到一个输出序列P1P2P3…Pn它是输入序列的某一种排列则在输	出序列中不可能出现以下情况存在ijk使得pipkpj。

原文地址: http://www.cveoy.top/t/topic/hKr9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录