当前位置:编程学习 > C/C++ >>

关于C语言堆栈的问题!

C怎么堆栈啊?给个例程啊!

追问:乱问一下也有人回答啊?呵呵……你是高手来的?是吧?牛!
答案:C语言中堆栈说的是数据结构,和系统中的堆栈中是不一样的,

/*
**用一个静态数组实现的堆栈。数组的长度只能通过修改#define的定义
**并对模块重新进行编译
*/

#include"stack.h"
#include<assert.h>

#define STACK_SIZE 100 /*堆栈中值数量的最大限制*/

/*
**存储堆栈中值的数组和一个指向堆栈顶部元素的指针
*/
static STACK_TYPE stack[STACK_SIZE];
static int top_element =-1;

/*push*/
void push(STACK_TYPE value)
{
assert(!is_full());
top_element +=1;
stack[top_element]=value;
}

/*pop*/
STACK_TYPE pop(void)
{
STACK_TYPE temp;
assert(!is_empty());
temp=stack[top_element];
top_element -= 1;
return temp;
}

/*top*/
STACK_TYPE top (void)
{
assert(!is_empty());
return stack[top_element];
}

/*
** is _empty
*/
int is_empty(void)
{
return top_element == -1;
}

/*
**is_full
*/
int is_full(void)
{
return top_element ==STACK_SIZE -1;
}

这是个静态堆栈,你可以动态的申请内存来编写动态堆栈

上一个:c 语言 一个学生信息管理系统
下一个:怎样才能学好C语言

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,