栈(C语言)


一个特殊的线性表,
要求:只能在其一端进行数据的插入和删除–>栈顶
作用:可以改变序列的顺序,保留了:尾插,尾删,获取最后一个元素,获取size,检测时候为空。
**注意:**栈中没有查找任意元素的的操作,遍历操作。
栈顶插入—>入栈—>压栈
栈顶删除—>出栈—>弹出
示例一:一个栈的初始状态为空,现将元素1,2,3,4,5,A,B,C,D,E入栈,得到的结果:
(1)依次入栈,则出栈的顺序:E.D.C.B.A.5.4.3.2.1.
(2)进一个出一个:1,2,3,4,5,A,B,C,D,E
模拟一个栈:(C语言实现)伪代码

#pragma     once

typedef  int   DataType;
#define  MAX-SIZE100

静态栈(栈中元素个数受限)
//struct   Stack
{
DataType array[MAX-SIZE];
int size;
};
``//

//动态栈

typedef struct Stack{

DataType*array;
int capacity;
int size;
}Stack;

//栈的初始化
void StackInit (Stackps)
assert (ps);
ps->array=(DatdType
)malloc(sizeof)
//检测栈是否为空
int StackEmpty(Stackps)
{
asserrt(ps);
return 0 ==ps->size
};
//获取栈顶元素
DataType StackTop(Stack
ps){
assert(ps);
return ps->array[ps->size-1];
}
//获取元素个数
int StackSize(Stack*ps)
{
assert(ps);
return ps->size;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值