首页 > 其他 > 详细

dynamicStack

时间:2016-10-24 02:27:33      阅读:279      评论:0      收藏:0      [点我收藏+]

动态栈的实现:

定义头文件:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int *stack;
int top=-1; 
int capacity=1;

void push(int ele);
int pop();
void stackEmpty();
void stackFull();

  动态栈函数的操作:

void push(int ele){

	if(top==capacity-1){
		stackFull(); 
	} 
	stack[++top]=ele; 
}
int pop(){
	if(top<0){
		stackEmpty(); 
	} 
	return stack[top--]; 
} 
void stackFull(){
	realloc(stack,2*capacity*sizeof(int*));
	capacity*=2; 
} 
void stackEmpty(){
	fprintf(stderr,"stack is empty!");
	exit(EXIT_FAILURE); 
} 

 主函数测试:

int main(void)
{
	stack=malloc(sizeof(int*));
	push(3); 
	
	printf("%d\n",pop());
	pop(); 
	return 0;
} 

                                                            2016-10-24    00:26:18

dynamicStack

原文:http://www.cnblogs.com/dtdyq/p/5991561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!