delphi 判断结构体不为空_数据结构(3)——堆栈的顺序存储实现

本文介绍了如何在 Delphi 中利用顺序存储结构实现堆栈,并提供了判断结构体是否为空的方法。堆栈遵循后入先出(LIFO)原则,主要操作包括创建堆栈、检查堆栈满、压栈、检查堆栈空和出栈。
摘要由CSDN通过智能技术生成

f457305d44a9387143f0a2145871d376.png

堆栈(Stack):顺序存储运算数,需要时倒序输出
具有一定操作约束的线性表,只在栈顶做插入删除。
插入:入栈
删除:出栈
后入先出:Last In First Out(LIFO)

栈的顺序存储结构通常由一个一维数组和一个记录栈顶元素位置的变量组成

#define MaxSize//存储数据元素的最大个数
typedef struct SNode *Stack;
struct SNode
{
	ElementType Data[MaxSize];
	int Top;//栈顶元素的数组下标
}; 

主要操作:
1.Stack CreateStack(int MaxSize):生成空堆栈,其最大长度是MaxSizehttp://2.int IsFull(Stack S,int MaxSize):判断堆栈S是否已满
3.void Push(Stack S,ElementType item):将元素item压入堆栈
top==-1表示堆栈空

void Push(Stack PtrS,ElementType item)
{
	if(PtrS->Top==MaxSize-1)
	{
		printf("堆栈满");
		return;
	}
	else
	{
		PtrS->Data[++(PtrS->Top)]=item;
		return;
	}
}

http://4.int IsEmpty(Stack S):判断堆栈S是否为空
5.ElementType Pop(Stack S):删除并返回栈顶元素

ElementType Pop(Stack PtrS)
{
	if(PtrS->Top==-1)
	{
		printf("堆栈空");
		return ERROR;//ERROR是ElementType的特殊值,标志错误 
	}
	else
	return (PtrS->Data[(PtrS->Top)--]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值