判断一个序列是否为栈的出栈序列

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 06:25:09
判断一个序列是否为栈的出栈序列

判断一个序列是否为栈的出栈序列
判断一个序列是否为栈的出栈序列

判断一个序列是否为栈的出栈序列
例,入栈顺序为6 5 4 3 2 1 ,输入一个序列,判断是否为出栈序列
#include<iostream
#include<malloc.h
#define ArSize 10
#define STACK_INCREMENT 20
using namespace std;
struct _Stack//栈{int *top;int *base;int stacksize;};void InitStack(_Stack &stack){
stack.base=(int *)malloc(STACK_INCREMENT*sizeof(int));//初始化栈顶和栈底
stack.top=stack.base;
stack.stacksize=ArSize;}void Push(_Stack &stack,int data){if(stack.top-stack.base==stack.stacksize)//当栈满里,增加分配空间{stack.base=(int*)realloc(stack.base,(stack.stacksize+STACK_INCREMENT)*sizeof(int));
stack.top=stack.base+stack.stacksize;
stack.stacksize+=STACK_INCREMENT;}*(stack.top)=data;//元素入栈
stack.top++;}void Pop(_Stack &stack)//出栈{int data;if(stack.top==stack.base)
cout<<"栈为空";else{stack.top--;
data=*stack.top;}}void Show(_Stack stack)//显示栈中的元素{stack.top--;
while(stack.top=stack.base){cout<<" "<<*stack.top;
stack.top--;}}int GetTop(_Stack &stack)//返回栈顶元素{return *(stack.top-1);}int main(){_Stack stack;int temp;int srcData[10]={6,5,4,3,2,1};//原始序列
int destData[10];
InitStack(stack);//初始化栈
for(int k=0;k<6;k++)//输入判断序列
cindestData[k];
int i=0,j=0;
while(stack.top=stack.base)//当栈不为空时{temp=GetTop(stack);//获取栈顶元素
if(destData[j]!=temp
)//当判断序列中的元素与栈顶元素不相等时,原始序列元素按顺序入栈{Push(stack,srcData[i]);i++;if(i6)break
;//当判断序列不是出栈顺序时,总会在某个元素时出现该元素与栈顶元素始终不相等
//此时,原始序列元素不断放栈,当大于序列长度时,判断结果;

判断一个序列是否为栈的出栈序列 判断一个序列是否为栈的出栈序列 一个栈的进栈序列为1234567,可能的出栈序列有多少种?6457321是否是合理的出栈序列 入栈序列为1,2,3,4,5,6让判断出栈序列不可能的是A?243156,324165,432156,235164 如何判断? 数据结构 怎样判断为一个序列是否为堆 判断序列是否为堆?为什么 判断序列是否为堆?为什么 如果进栈的元素序列为1.2.3.4.5.6,能否得到435612和135426的出栈序列?为什么 如何判断获得的某一真核生物cDNA序列是否为全长序列不要告诉我blast哦 主要弄清楚真核生物mRNA序列的基本特征 一个栈的输入序列是12345,则栈的输出序列有哪几种?把各种序列列出来 一个空栈,输入序列ABCDE经过push push pop push pop后输出序列为 数据结构 算法(求高手解答)有一个由自然数构成的序列采用单链表存储,试编写算法判断该序列是否是fibonacci序列(fibonacci序列是1,1,2,3,5,8,13,21,34,…). 一个栈的入栈序列是1,2,3,4,5,操作时随时进随时出,则栈的不可能输出序列是43512,说明原因 一个栈的进栈数据元素序列a、b、c、d、e,则不可能的出栈序列是( ) 如何在Matlab里面判断一个序列是否满足高斯分布如题,生成一个序列,如何判断序列是否满足高斯分布?在Matlab里有没有方便简单的方法,粗略估计一下即可~ 如果进栈序列为ABCD则可能的出栈序列是?A)CADB B)BDCA C)DCBA D)ABCD 判断该组数是否是一个从小到大的序列.若是输出 YES ,否则输出 NO 如何判断一条给定的DNA序列是否含基因?