顺序栈操作的实验代码(C语言)

版权声明:原创的东西,转载时留个标记。 https://blog.csdn.net/laguoqing/article/details/84892028

        在做栈的习题,顺手把顺序栈的操作总结实现了一下,也算很好的复习了一下结构体,结构体指针,过程中还好好的体会了一把调试的“乐趣”。

        开始的时侯卡在用不用指针上了,最后发现C语言不用指针实在是太不方便了,指针写上,哗哗的,如涛涛江水连绵不绝。

/*
实现栈的全体操作
	2019年12月8日于六安碧桂园中午蒸了个不太成功的鸡蛋之后
									赵国庆  [email protected] 
															 */
#include "stdio.h"
#define MAXSIZE    50
#define TRUE       1
#define FALSE      0

typedef int bool;       //Cpp中这一行要取消掉,他内置bool型 
typedef int Status;    //函数类型,其值是函数结果状态码
typedef int ElemType;  //数据类型 


typedef struct stack
{
	ElemType Data[MAXSIZE];
	int top;
}SqStack;


void InitStack(SqStack *s)//初始化栈 
{
	 s->top=-1;
}

bool StackEmpty(SqStack *s)//判栈空 
{
	if(s->top==-1)
		return TRUE;
	else
		return FALSE;
}

bool Push(SqStack *s,ElemType e)//压栈 
{
	if(s->top==MAXSIZE-1)
	    {
    	printf("Stack is Full\n");   	
		return FALSE;
	    }
	    s->Data[++(s->top)]=e;//先移指针再入数 
	    return TRUE;
}
bool  Pop(SqStack *s,ElemType *e)//出栈 
{
	if(s->top==-1)
	    {
    	printf("Stack is Empty\n");   	
		return FALSE;
	    }
		*e=s->Data[(s->top)--];//先取数再减指针 
		return TRUE;
}

bool GetTop(SqStack *s,ElemType *e)//取栈顶元素 
{
	if(s->top==-1)
		return FALSE;
	*e=s->Data[s->top];
	return TRUE;
}

int main()
{
	SqStack FS,*FSPtr;
	FSPtr=&FS;
	ElemType a=1,b=2,c=3;
	ElemType *x;			//用来返回弹出或取出的元素 
	int i;



    InitStack(FSPtr);
    printf("%s\n",StackEmpty(FSPtr)==TRUE?"Stack is Empty":"Stack is not Empty");
    Push(FSPtr,a);
    printf("%s\n",StackEmpty(FSPtr)==TRUE?"Stack is Empty":"Stack is not Empty");
    Push(FSPtr,b);
    Push(FSPtr,c);
    for(i=0;i<50;i++)  //顺序压0-49数字入栈 
    {
    	    Push(FSPtr,i);
   	        printf("Push data %d into stack \n",i);
    }
	Pop(FSPtr,x);
	printf("Pop data is %d\n",*x);
    GetTop(FSPtr,x);
	printf("GetTop data is %d\n",*x);
   for(i=0;i<20;i++)  //顺序弹出 
    {
    	    Pop(FSPtr,x);
    	    	printf("Pop data is %d\n",*x);
    }
	
	printf("The Stack is:\n");
	
	for(i=FSPtr->top;i>-1;i--) //输出全栈 
{
	printf("%d	",FSPtr->Data[i]);
}	
getchar();
return 0;
}

实际运行效果:

猜你喜欢

转载自blog.csdn.net/laguoqing/article/details/84892028