C语言堆栈(6页).doc
-#include<stdio.h>#include "Stack.h"#include "StackCommonFunction.h"void main() Stack s;T x;CreateStack(&s,10);Push(&s,10);Push(&s,15);PrintStack(s);x=*InputElement();Push(&s,x);PrintStack(s);Pop(&s);Pop(&s);if(IsEmpty(s)printf("Is Empty!n");elseprintf("Is not Empty!n");PrintStack(s);#include<stdio.h>#include "Stack.h"#include "StackCommonFunction.h"T *InputElement() static T a; scanf("%d",&a); return &a;void PrintElement(T x) printf("%d ",x);void PrintStack(Stack s) if(IsEmpty(s)printf("The Stack is empty!n");elsefor(;s.Top>=0;s.Top-)PrintElement(s.Elements.Top);void CreateStack(Stack *s,int maxsize) s->Top=-1;s->MaxSize=maxsize;BOOL IsEmpty(Stack s) return s.Top<0;BOOL IsFull(Stack s) return s.Top>=s.MaxSize-1;void Push(Stack *s,T x) if(IsFull(*s)printf("Overflow!n");elses->Top+;s->Elements->Top=x;void Pop(Stack *s) if(IsEmpty(*s)printf("Underflow!n");elses->Top-;void StackTop(Stack s,T *x) if(IsEmpty(s)printf("Underflow");else*x=s.Elements.Top;#ifndef STACK_H#define STACK_H#define MAXSIZE 50#define FALSE 0#define TRUE 1typedef int BOOL;typedef int T;typedef struct stack int Top,MaxSize;T ElementMAXSIZE; Stack;#endif#ifndef STACKCOMMONFUNCTION_H#define STACKCOMMONFUNCTION_H#include "Stack.h"void CreateStack(Stack *s,int maxsize); /已经创建一个堆栈后,构造一个空堆栈,maxsize为实际长度BOOL IsEmpty(Stack s); /判断堆栈是否为空,返回BOOL值。1为空,0为不空BOOL IsFull(Stack s); /判断堆栈是否为满,返回BOOL值,1为满,0为不满void Push(Stack *s,T x); /入栈操作void Pop(Stack *s); /出栈操作void StackTop(Stack s,T *x);/在x中返回栈顶元素T *InputElement(); /输入单个元素T,返回输入值的地址void PrintElement(T x); /输出显示单个元素的值void PrintStack(Stack s); /输出显示堆栈中的每一个元素 #endif第 7 页-