数据结构-栈--结构体实现

        栈的基本算法的实现(通过结构体):

#include<stdio.h>
#include<stdlib.h>
#define N 50
struct mystack  
{
	int top;   //栈顶
	int data[N];//栈里数据
};
struct mystack selfstack={-1,{0}};
int isempty();//判断是否为空,1为空,0位非空
void setempty();//设置栈为空
int push(int num);//将数据压入栈
int pop();//将数据推出栈

int isempty()
{
	if(selfstack.top==-1)   //如果栈为空返回1
		return 1;
	else
		return 0;
}

void setempty()  //将栈顶设置成1即为空栈
{
   selfstack.top=-1;
}

int push(int num)
{
	if(selfstack.top==N-1) //如果栈顶为N-1了即为满栈,不能压入数据
		return 0;
	else
	{
      selfstack.top+=1;//栈顶移位
	  selfstack.data[selfstack.top]=num;//数据压入栈
   	  return 1;
	}
}

int pop()
{
	if(selfstack.top==-1)  //如果为空栈,无数据推出
		return -1;
	else 
	{
      selfstack.top-=1;//栈顶移位
      return selfstack.data[selfstack.top+1];//将数据推出
	}
}

void main()
{
    int	a[10]={0,1,2,3,4,5,6,7,8,9};
	for(int i=0;i<10;i++)
		push(a[i]);//将数据压入栈
	while(!isempty())
    	printf("%d\n",pop());//将栈内数据依次推出
	
	system("pause");
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值