輸入一串行的元素,判斷另一列元素是否符合棧的「先進後出」性質
#include#include #include using namespace std;
bool check(int *stack_in, int *stack_out,int len_in,int len_out)
} return (s.size()>0) ?false:true; //當所有出棧序列元素都匹配完之後,棧應為空
}
int main()
; //入棧序列
int stack_out = ; //出棧序列
int len_in = sizeof(stack_in) / sizeof(stack_in[0]); //入棧序列長度
int len_out = sizeof(stack_out) / sizeof(stack_out[0]); //出棧序列長度
bool ret = check(stack_in, stack_out,len_in,len_out);
if (ret)
cout << "yes" << endl;
else
cout << "no" << endl;
system("pause");
return 0;
出棧入棧合理性
出棧入棧合理性,用兩指標指向兩陣列,建立一新棧來儲存元素。對於入棧陣列的指標一直往下走,併入棧,當與出棧陣列元素相等時,讓棧中的元素pop,還原入棧出棧的過程。如果在這種情況下不處理的話,會導致入棧陣列元素一直往下走,若入棧較多元素後連續出棧,會導致判斷失誤 入棧元素一直往後走,而之前早入棧的元素會...
如何判斷出棧序列合理性
模擬棧的入棧和出棧,根據較大的數先出棧,比它小的數必須由大到小出棧,但不一定連續出棧 如 3 2 1 5 4 或者 3 2 5 4 1 3先出棧,2和1必須由大到小出棧,他們可以連續出棧也可以在中間隔著幾個數,但1在2前出棧坑定是不行的,如 3 1 2 5 4 或3 1 5 4 2,這都是不合理的順...
如何判斷出棧序列合理性
模擬棧的入棧和出棧,根據較大的數先出棧,比它小的數必須由大到小出棧,但不一定連續出棧 如 3 2 1 5 4 或者 3 2 5 4 1 3先出棧,2和1必須由大到小出棧,他們可以連續出棧也可以在中間隔著幾個數,但1在2前出棧坑定是不行的,如 3 1 2 5 4 或3 1 5 4 2,這都是不合理的順...