`

用数组实现栈的基本操作

 
阅读更多
/*
  用数组(顺序表)实现栈的常用操作
*/
#include<stdio.h>

#include <stdlib.h>


//定义结构体
typedef struct Node
{
	 
     int data[20];
	 int top;
} SeqStack;

//函数操作声明
void SeqStackInit(SeqStack);//栈的初始化
bool SeqStackInitEmpty(SeqStack);//判断栈是否为空
void SeqStackPush(SeqStack,int);//入栈操作
int SeqStackPop(SeqStack);//出栈操作
int SeqStackGetPop(SeqStack);//取栈顶元素




int main(void)
{
	SeqStack s;//声明出结构体变量 

	SeqStackInit( s);

   return 0;
}

//初始化实现
void SeqStackInit(SeqStack s)
{
    s.top=-1;//如果空栈 声明-1然后++
}
//判断栈是否为空
bool SeqStackInitEmpty(SeqStack s)
{
      if(s.top==-1)
		  return true;
	  else
		  return false;
}
//入栈操作
void SeqStackPush(SeqStack s ,int val)
{
	if(20-1==s.top)
	{
	   printf("栈已满");
	   exit(-1);
	}
	else 
	{
	  s.data[++s.top]=val;
	}

}
//出栈操作
int SeqStackPop(SeqStack s)
{
	if(SeqStackInitEmpty(s))
	{
	   printf("栈为空");
	   exit(-1);
	}
   int val=s.data[s.top];
   s.top--;
   return val;
  
}
//取栈顶元素
int SeqStackGetPop(SeqStack s)
{
   if(SeqStackInitEmpty(s))
   {
     printf("空栈");
	 exit(-1);
   }
   return s.data[s.top];
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics