C语言:反向输出栈方法实现-创新互联

#include#define MAXLEN 100
typedef int DataType;
typedef struct
{DataType data[MAXLEN];
	int top;
}SeqStack;
void InitStack(SeqStack *S);//初始化栈 
int EmptyStack(SeqStack *S);//栈空判断函数 
int FullStack(SeqStack *S);//栈满判断函数 
int push(SeqStack *S , DataType x);//入栈操作函数 
int pop(SeqStack *S , DataType *x);//出栈操作函数 
int main()
{SeqStack S;
	DataType x;
	int flag , n;
	printf("请输入入栈的元素个数:");
	scanf("%d",&n);
	for(int i = 0 ; i< n ; i++){scanf("%d",&x);
		flag = push(&S,x);
	}
//	printf("入栈操作成功!\n");
	flag = 0;
	printf("出栈的元素为:");
	for(int i = 0 ; i< n ; i++){flag = pop(&S,&x);
		printf("%3d",x);
	}
//	printf("\n出栈操作成功!\n");
	return 0;
} 
void InitStack(SeqStack *S)
{//创建一个空栈,栈顶下标top初始化为-1 
	S->top = -1;
}
int EmptyStack(SeqStack *S)
{//判断栈空函数
	if(S->top==-1){return 1;
	}else{return 0;
	}
}
int FullStack(SeqStack *S)
{//判断栈满函数 
	if(S->top == MAXLEN-1){return 1;
	}else{return 0;
	}
}
int push(SeqStack *S , DataType x)
{//入栈操作函数 
	if(FullStack(S)){printf("栈满,不能进栈操作!");
		return 0;
	}else{S->top++;
		S->data[S->top] = x;
		return 1;
	}
} 
int pop(SeqStack *S , DataType *x) 
{//出栈操作函数
	if(EmptyStack(S)){printf("栈空,不能出栈操作!");
		return 0;
	}else{*x = S->data[S->top];
		S->top--;
		return 1;
	} 
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

创新互联公司专注于皮山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供皮山营销型网站建设,皮山网站制作、皮山网页设计、皮山网站官网定制、微信小程序开发服务,打造皮山网络公司原创品牌,更为您提供皮山网站排名全网营销落地服务。
本文标题:C语言:反向输出栈方法实现-创新互联
文章源于:http://scyanting.com/article/dcheep.html