/*本程序是链式堆栈程序 数据结构-朱战立 第三版 第三章完整程序*/
/*环境 vs2013+win7*/
/*2018年8月17日 10:19:21*/
//这是一个链式堆栈的判空、压栈、出栈、取栈顶等操作
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MaxSize 100
typedef int bool;
#define T 1
#define F 0
typedef int DataType;
typedef struct stack{
DataType data;
struct stack *next;
}ListStack;
//堆栈初始化
void ListStackInit(ListStack **stack) //输出型 2018年8月16日 14:35:35 更正
{
if (((*stack)=(ListStack*)malloc(sizeof(ListStack)))==NULL)
{
exit(1);
}
(*stack)->next = NULL;
}
//堆栈判断是否为空
int ListStackEmpty(ListStack *stack)
{
if (stack->next == NULL)
{
return 0;
}
else
{
return 1;
}
}
//堆栈进栈
int ListStackPush(ListStack *stack, DataType x)
{
ListStack *pTemp;
if ((pTemp = (ListStack*)malloc(sizeof(ListStack))) == NULL)
{
return 0;
}
pTemp->data = x;
/*pTemp->next = NULL;*/
pTe