这里实现的栈是利用上一篇文章中的单链表来实现的:这个栈的实现也是一些基本的操作,也是没有什么错误控制的,哈哈,其实一般实现的栈也不会提供错误控制的,用的不好程序崩溃了那也是自己的事,好吧,代码贴出来:

头文件:


/*
 * 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);
}