RubbishBin/maze/include/stack.h

84 lines
1.5 KiB
C
Raw Normal View History

2024-10-30 17:23:52 +08:00
//
// Created by ricardo on 2022/10/25.
//
#ifndef MAZE_STACK_H
#define MAZE_STACK_H
#include "cstdlib"
#include "maze_node.h"
// 默认的栈大小
#define DEFAULT_STACK_LENGTH 200
// 由于将迷宫中的所有节点都储存在数组中
// 存储路径的栈就不用存储节点的指针
// 而是直接存储节点在数组中的索引
struct stack {
int* top;
int* base;
int stack_size;
};
typedef struct stack stack_t;
typedef struct stack* stack_p;
/**
*
* @param s
* @return
*/
bool init_stack(stack_t& s);
/**
*
* @param s
* @return
*/
bool stack_is_empty(const stack_t& s);
/**
*
* @param s
* @return
*/
bool stack_is_full(const stack_t& s);
/**
*
* @param s
* @param value
* @return
*/
bool stack_push(stack_t& s, int index);
/**
*
* @param s
* @param value
* @return
*/
bool stack_pop(stack_t& s, int* index);
/**
*
* @param s
* @return
*/
int stack_get_bottom(const stack_t& s);
/**
*
* @param s
* @return
*/
int stack_get_top(const stack_t& s);
/**
*
* @param s
*/
void stack_free(stack_t& s);
#endif //MAZE_STACK_H