【C数据结构】栈的例子

固定大小的顺序栈

#include<stdio.h>

//初始大小 
#define MAXLEN 100

//定义存储的数据类型
typedef int datatype;

//定义结构体
typedef struct stacknode{
	datatype data[MAXLEN];//存放元素 
	int top; //栈顶元素的位置 -1表示空栈 
}SeqStack; 

void InitStack(SeqStack* &s);//构造空栈 
int IsEmpty(SeqStack *s);//判断是否为空 
int ReadTop(SeqStack *s,datatype x);
int Pop(SeqStack* &s,datatype x);
int Push(SeqStack* &s,datatype x); 
int main(){
	SeqStack *s;
	InitStack(s);
} 

void InitStack(SeqStack* &s){
	s=new SeqStack;
	s->top=-1;
} 
int IsEmpty(SeqStack *s){
	//空返回1;非空返回0 
	if(s->top==-1) return 1;
	return 0;
} 
int ReadTop(SeqStack *s,datatype &x){
	//把栈顶元素的值赋给x 
	if(IsEmpty(s)) return 0;
	x=s->data[s->top];
	return 1;
}
int Pop(SeqStack* &s,datatype &x){
	//出栈 
	if(IsEmpty(s)) return 0;
	x=s->data[s->top];
	s->top--;
	return 1;
}
int Push(SeqStack* &s,datatype x){
	//入栈
	if(s->top==MAXLEN-1) return 0;
	s->top++;
	s->data[s->top]=x;
	return 1;
}

 

展开阅读全文
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值