数据结构——栈

本文介绍了栈的基本原理和链表实现,通过实例讲解了如何初始化栈、判断栈的空满状态,以及如何进行push、pop和getTop操作。这是作者在CSDN上进行数据结构学习的笔记分享。
摘要由CSDN通过智能技术生成

以后我会在CSDN做数据结构的笔记整理,并且分享给大家。

前一个星期老师讲解了栈的原理及实现。

首先,栈就是一个FILO(先进的后出)的结构,第一个被推入栈内的数据会最后一个出去。我们可以使用链表来构建栈。

struct stack{
    int data[maxsize];
    int top;
}stack;

这里我们以存储int类型的数据为例,top指代栈顶在数组中的序号。

初始化栈

void Init(struct stack *s){
	s->top=-1;
}

我们让top=-1,完成栈的初始化。

接下来我们判断栈是否为空或满。

bool isEmpty(struct stack *s){
	if(s->top==-1){//检测top的值,初始化的时候为一 
		return 1;//如果栈为空,则返回1 
	}
	return 0;//如果栈不空,则返回0 
}

bool isFull(struct stack *s){
	if(s->top=Maxsize-1){
		return 1;//栈满 
	}
	return 0;//不满 
}

接下来我们就可以进行数据的入栈push和出栈pop操作。

void push(struct stack *s,int a){
	if(isFull){//如果为空则报0 
		printf("栈满无法入栈");
		exit(0);
	}
	else{
		s->top++;
		s->data[s->top]=a;//top向上走一位,并赋值 
	} 
}

void pop(struct stack *s){
	if(isEmpty){
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值