顺序栈的C语言实现——初始化函数、入栈函数和出栈函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1032796097/article/details/78666768

将顺序栈的结构定义为:

#define  M  100   //栈的空间

typedef struct

  {   int data[M];

int top;

  } SqStack;

试写出SqStack的初始化函数、入栈函数和出栈函数 。并在main()函数中测试上述函数。

#include <stdio.h>
#include <stdlib.h>
#define M 100
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0


typedef struct{
	int data[M];
	int top;
} SqStack;


void SqStackInit(SqStack *S){
	S->top = -1;
}

int SqStackPush(SqStack *S,int x){
	if (S->top == M - 1){
		return FALSE;
	}
	S->top++;
	S->data[S->top] = x;
	return TRUE;
}


int SqStackPop(SqStack *S, int *x){
	if (S->top == - 1){
		return FALSE;
	} else {
		*x = S->data[S->top];
		S->top--;
		return TRUE;
	}
}

int main() {
	SqStack S;
	int i;
	int n;
	SqStackInit(&S);        
	printf("请输入栈元素:\n");
	int x;
	while(scanf("%d",&x)!=EOF){
		SqStackPush(&S,x);  
	}
	printf("输出栈元素:\n");
	for (i = 0; i < M; ++i)	{
		if(SqStackPop(&S,&n))           
            printf("%d ",n);
	}
	printf("\n");
	return 0;
}


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页