码迷,mamicode.com
首页 > 其他好文 > 详细

dynamicStack

时间:2016-10-24 02:30:06      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:failure   exit   pac   ring   turn   blog   sizeof   lib   log   

动态栈的实现:

定义头文件:

#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

标签:failure   exit   pac   ring   turn   blog   sizeof   lib   log   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!