设有一个长度为n的由“0”和“1”元素组成的输入序列 存于数组A[n]中。设计一个算法 依次让每个元素通
元素,序列,数组
已帮助 人
设有一个长度为n的由“0”和“1”元素组成的输入序列,存于数组A[n]中。设计一个算法,依次让每个元素通过一个栈s(容量≥n)而得到一个输出序列,使得输出序列中“0”元素都出现在“1”元素之前。输出序列存人数组B[n]中。
请帮忙给出正确答案和分析,谢谢!
-
正确答案:void sorder(int A[]int B[]) { int iJ=0;stack S; for(i=0;i<n;i++) { push(A[i]s); if(A[i]==0) { pop(SB[J]);J++;} } while(!empty(S)) { pop(sB[J]);j++;} }
此问题考查的知识点是栈的操作问题。通过对栈顶元素的判断,决定是否出栈。
