抽象数据类型——栈ADT(二)

本文介绍了抽象数据类型栈(ADT 栈)的概念,详细讲解了栈的链表和数组两种实现方式,包括 Push、Pop、Top 等基本操作,并讨论了各自的优缺点。
摘要由CSDN通过智能技术生成

(一)栈的定义

是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的
对栈的基本操作有Push(进栈)和Pop(出栈),前者相当于插入,后者则是删除最后插入的元素。最后插入的元素可以通过使用Top例程在执行Pop之前进行考查。
这里写图片描述
栈的一般模型是,存在某个元素位于栈顶,而该元素是唯一可见的元素。

(二)栈的实现

1.栈的链表实现

在编写例程之前,我们先给出定义:

 #ifndef _Stack_h
 
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode Stack;

int IsEmpty( Stack S);
Stack CreateStack( void );
void DisposeStack( Stack S );
void MakeEmpty( Stack S );
void Push( ElementType X, Stack S );
ElementType Top( Stack S );
void Pop( Stack S );
#endif  /*_Stack_h*/
struct Node
{
	ElementType Element;
	PtrToNode Next;
};
  • IsEmpty函数
int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值