大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以的,先别被题目骗了,说是1,2,3,4为输入序列,实际上只是按照这个顺序执行,并非一次性把1,2,3,4连续放进栈里面,什么情况下会有出栈为3,2,4,1呢?就是,先进栈1,2,3,然后3出栈,再2出栈,然后4进栈,4出栈,再1出栈,那么就满足你提出的可能了。
目前创新互联已为上千的企业提供了网站建设、域名、虚拟空间、网站托管、服务器租用、企业网站设计、盐城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
就用这堆函数就可以了,不懂再追问
#include
string.h
#define
MaxSize
100
int
mystack[MaxSize];/*
第0个单元保存现在的长度
*/
/*
初始化函数
*/
void
init_stack(int*
stack){
memset(stack,0,sizeof(stack));
}
/*
入栈函数
*/
void
push_back(int*
stack,int
num){
if(stack[0]MaxSize-1){
++stack[0];
stack[
stack[0]
]
=
num;
}
else{
printf("ERORR!\n");
}
}
/*
返回栈空间
*/
int
size(int*
stack){
return
stack[0];
}
/*
返回栈顶函数
*/
int
top(int*
stack){
if(stack[0]0){
return
stack[
stack[0]
];
}
else{
printf("ERORR!\n");
return
-1;
}
}
/*
出栈函数
*/
void
pop(int*
stack){
if(stack[0]0){
--stack[0];
}
else{
printf("ERORR!\n");
}
}
flag=Pop(S,e);这里不该这样调用,直接使用flag=Pop(S,e);
函数定义int Pop(LinkStack S,SElemType e)里表示引用实参,也即是说使用e对象本身进行运算,而如果没有则是使用e对象的拷贝进行运算