【数据结构】【C】顺序栈
发布时间:2020-12-15 06:34:14 所属栏目:安全 来源:网络整理
导读:/* 文件一: 顺序栈头文件 */#ifndef __SEQSTACK_H#define __SEQSTACK_H//#include stdafx.h/* VS2012不支持bool,自己定义 */#define bool int#define true 1#define false 0#define MAXSIZE 1024//typedef int ElemType;typedef struct{//ElemType data[MA
/* 文件一: 顺序栈头文件 */ #ifndef __SEQSTACK_H #define __SEQSTACK_H //#include <stdafx.h> /* VS2012不支持bool,自己定义 */ #define bool int #define true 1 #define false 0 #define MAXSIZE 1024 //typedef int ElemType; typedef struct{ //ElemType data[MAXSIZE]; int data[MAXSIZE]; int top; }SeqStack; /** * 初始化 * @param void 不接受参数 * @return SeqStack * 返回指向SeqStack的指针 **/ extern SeqStack *init_Stack(void); /** * 判断s是否为空 * @param s 要操作的顺序栈s * @return bool true:入栈成功; false:传参有误或空间不足 **/ extern bool empty_stack(SeqStack *s); /** * 入栈 * @param s 要操作的顺序栈s * @param val 入栈的元素val * @return bool true:入栈成功; false:传参有误或空间不足 **/ extern bool push_stack(SeqStack *s,int val); /** * 出栈 * @param s 要操作的顺序栈s * @param val 保存弹出元素的指针 * @return bool true:入栈成功; false:传参有误或空间不足 **/ extern bool pop_stack(SeqStack *s,int *val); /** * 读取栈顶元素 * @param s 要操作的顺序栈s * @return ElemType 返回栈顶元素的值,若s为空栈则返回0 **/ extern int top_stack(SeqStack *s); #endif /* 文件二:顺序栈c文件 */#include "SeqStack.h" #include <stdlib.h> // 顺序栈初始化 SeqStack *init_Stack(void){ SeqStack *s = (SeqStack *)malloc(sizeof(SeqStack)); s->top = -1; return s; } // 判空 bool empty_stack(SeqStack *s){ if(s == NULL || s->top == -1){ return true; }else{ return false; } } // 入栈 bool push_stack(SeqStack *s,int val){ if(s == NULL || s->top == MAXSIZE-1){ return false; }else{ s->top++; s->data[s->top] = val; return true; } } // 出栈 bool pop_stack(SeqStack *s,int *val){ if(s == NULL || s->top == -1){ return false; }else{ *val = s->data[s->top]; s->top--; return true; } } // 读取栈顶 int top_stack(SeqStack *s){ if(s == NULL || s->top == -1){ // 如果栈不存在 return 0; }else{ return s->data[s->top]; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |