堆栈的抽象数据类型描述:
-
类型名称: 堆栈(Stack)。
-
数据对象集: 一个有 0 个或多个元素的又穷表。
-
操作集: 长度为
max_size 的堆栈 S ∈ Stack, 堆栈元素 item ∈ ElementType。
-
stack creatc_stack(int max_size): 生成空堆栈, 其最大长度为 max_size;
-
bool is_full(stack *s, int max_size): 判断堆栈 S 是否已满;
-
void push(stack *s, element_type item): 将元素 item 压入堆栈;
-
bool is_empty(stack *s): 判断堆栈 S 是否为空;
-
element_type pop(stack s): 删除并返回栈顶元素;
伪码描述:
#define MAX_SIZE 10 // 存储元素的最大个数
#define ERROE -1
#define bool int
#define True 1
#define Flase 0
// element_type 代表任意基本数据类型
typedef struct{
element_type data[MAX_SIZE];
int top;
} stack;
// 初始化一个栈
stack creatc_stack(void)
{
stack *s = (stack*)malloc(sizeof(stack));
s->top = -1;
return s;
}
// 入栈
void push(stack *s, element_type item)
{
if (s->top < MAX_SIZE-1){
s->data[(s->top)+1] = item;
s->top++;
}
}
// 出栈
element_type pop(stack *s)
{
element_type n = NULL;
if (s->top != -1){
n = s->data[(s->top--)];
}
return n;
}
// 判断堆栈是否为空
bool is_empty(stack *s)
{
bool flag = Flase;
if (s->top == -1){
flag = True;
}
return flag;
}
// 判断堆栈是否已满
bool is_full(stack *s, int MAX_SIZE)
{
bool flag = Flase;
if (s->top == MAX_SIZE-1){
flag = True;
}
return flag;
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。