经典抽象数据类型之堆栈实现(静态数组)
来源:互联网 发布:软件开发部门职位 编辑:程序博客网 时间:2024/06/01 09:20
/*
**author: gooly.oh
**description: 用一个静态数组实现的堆栈
*/
#define STACK_TYPEint
#define STACK_SIZE100 //堆栈中值数量的最大值
static STACK_TYPEstack[STACK_SIZE];
static int top_element = -1; //保存堆栈顶部元素的下标值
/*-----------------------------------------------------------------------
**name: push
**function: 把一个新值压栈
**param: 被压入的值
*/
void push(STACK_TYPE value)
{
assert(!is_full());
stack[++top_element] = value;
}
/*-----------------------------------------------------------------------
**name: pop
**function: 从堆栈中弹出一个值,并将其返回
*/
STACK_TYPE pop(void)
{
assert(!is_empty());
return stack[top_element--];
}
/*-----------------------------------------------------------------------
**name: top
**function: 返回堆栈顶部元素的值,但不对堆栈进行修改
*/
STACK_TYPE top(void)
{
assert(!is_empty());
return stack[top_element];
}
/*-----------------------------------------------------------------------
**name: is_empty
**function: 如果堆栈为空,返回TRUE,否则返回FALSE
*/
int is_empty(void)
{
return top_element == -1;
}
/*-----------------------------------------------------------------------
**name: is_full
**function: 如果堆栈已满,返回TRUE,否则返回FALSE
*/
int is_full(void)
{
return top_element = STACK_SIZE - 1;
}
**author: gooly.oh
**description: 用一个静态数组实现的堆栈
*/
#define STACK_TYPEint
#define STACK_SIZE100 //堆栈中值数量的最大值
static STACK_TYPEstack[STACK_SIZE];
static int top_element = -1; //保存堆栈顶部元素的下标值
/*-----------------------------------------------------------------------
**name: push
**function: 把一个新值压栈
**param: 被压入的值
*/
void push(STACK_TYPE value)
{
assert(!is_full());
stack[++top_element] = value;
}
/*-----------------------------------------------------------------------
**name: pop
**function: 从堆栈中弹出一个值,并将其返回
*/
STACK_TYPE pop(void)
{
assert(!is_empty());
return stack[top_element--];
}
/*-----------------------------------------------------------------------
**name: top
**function: 返回堆栈顶部元素的值,但不对堆栈进行修改
*/
STACK_TYPE top(void)
{
assert(!is_empty());
return stack[top_element];
}
/*-----------------------------------------------------------------------
**name: is_empty
**function: 如果堆栈为空,返回TRUE,否则返回FALSE
*/
int is_empty(void)
{
return top_element == -1;
}
/*-----------------------------------------------------------------------
**name: is_full
**function: 如果堆栈已满,返回TRUE,否则返回FALSE
*/
int is_full(void)
{
return top_element = STACK_SIZE - 1;
}
- 经典抽象数据类型之堆栈实现(静态数组)
- 经典抽象数据类型之堆栈实现(动态数组)
- 经典抽象数据类型之堆栈实现(单链表)
- 静态数组实现堆栈
- 堆栈之静态数组
- 《大话数据结构》读书笔记之栈抽象数据类型(数组实现)
- 静态数组实现的堆栈
- 宏实现泛型堆栈(静态数组)
- 《大话数据结构》读书笔记之 队列抽象数据类型(数组实现循环队列)
- 堆栈(数组实现)
- 第十七章经典抽象数据结构二:树(数组实现)
- 第十七章经典抽象数据类型(一)
- 经典抽象数据类型
- 20.经典抽象数据类型
- 经典抽象数据类型
- 数组实现堆栈(sbds)
- 考研数据结构与算法之堆栈的使用(三)数组实现的堆栈
- Java数据结构之堆栈-使用数组实现堆栈
- 关于Yii中实现dropDownList联动操作
- Django需要注意的10个要点
- 工作以后十不要
- db file scattered read等待事件
- javax.servlet.ServletException: java.lang.IllegalStateException: No WebApplicationContext found: no
- 经典抽象数据类型之堆栈实现(静态数组)
- 关于多线程并发:每个开发人员都应了解的内容
- Qt之QNetworkDiskCache
- 在java工程所有的.java中找到内容包含指定字符串的.java文件
- 查找目录下的所有文件中是否含有某个字符串 linux
- 【IOS】1.xcode 开发的零碎整理 | ARC 关闭键盘
- 经典抽象数据类型之堆栈实现(动态数组)
- js判断变量类型 有2种方法
- linux sed 批量替换多个文件中的字符串