这里实现的栈是利用上一篇文章中的单链表来实现的:
http://blog.csdn.net/dlutbrucezhang/article/details/18225473,这个栈的实现也是一些基本的操作,也是没有什么错误控制的,哈哈,其实一般实现的栈也不会提供错误控制的,用的不好程序崩溃了那也是自己的事,好吧,代码贴出来:
头文件:
/* * dlut_stack.h * * Created on: 2014年1月13日 * Author: DLUTBruceZhang */ #ifndef DLUT_STACK_H_ #define DLUT_STACK_H_ #include "dlut_list.h" #define EMPTY 1 #define NOT_EMPTY 0 list * dlut_stack_create(); void dlut_stack_push(list *, need data); void dlut_stack_pop(list *); need dlut_stack_get(list *); int dlut_stack_empty(list *); void dlut_stack_destory(list *); #endif /* DLUT_STACK_H_ */
C文件:
/* * dlut_stack.c * * Created on: 2014年1月13日 * Author: DLUTBruceZhang */ #include "dlut_stack.h" list *dlut_stack_create() { return dlut_list_create(); } void dlut_stack_push(list *head, need data) { dlut_list_insert_to_head(head, data); } void dlut_stack_pop(list *head) { dlut_list_delete_the_head(head); } need dlut_stack_get(list *head) { return dlut_list_get_the_head(head); } int dlut_stack_empty(list *head) { return head -> data ? NOT_EMPTY : EMPTY; } void dlut_stack_destory(list *head) { dlut_list_delete_the_list(head); }
原文:http://blog.csdn.net/dlutbrucezhang/article/details/18253059