这里实现的栈是利用上一篇文章中的单链表来实现的:这个栈的实现也是一些基本的操作,也是没有什么错误控制的,哈哈,其实一般实现的栈也不会提供错误控制的,用的不好程序崩溃了那也是自己的事,好吧,代码贴出来:
头文件:
/*
* 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);
}