2018-05-18实验二第一个实验

#include 
#include 
#include "string.h" 
#define  OVERFLOW  0
#define  OK        1
#define  ERROR     0 


/* 作者:张泽涛 
   */ 
   
typedef struct StackNode
{
    char data;
    struct StackNode *next; 
}StackNode,*LinkStack;

int InitStack(LinkStack *S) //链栈初始化 
{
    (*S)=(StackNode*)malloc(sizeof(StackNode));
    (*S)->next=NULL;
}

int StackEmpty(LinkStack S) //判断栈是否为空 
{
    if(!(S->next)) 
        return OK;
    else   
        return ERROR;
}

int Push(LinkStack *S,char ch) //进栈 
{
    StackNode *p;
    p=(StackNode*)malloc(sizeof(StackNode));//生成新结点
    p->data=ch;
    p->next=*S;
    *S=p;
    return OK; 
}

int Pop(LinkStack *S, char ch) //出栈 
{
    StackNode *p;
    ch=(*S)->data;
    p=*S;
    (*S)=(*S)->next;
    free (p);
    return OK;
}
 
char GetTop(LinkStack S) //取栈顶指针 
{
    if(S!=NULL)
      return S->data; 
} 

int main()
{
    char A[10],ch,x;
    int i;
    int flag=1;
    
    while(1)
    {
        LinkStack S;
        InitStack(&S);
        printf("输入表达式:\n");
        scanf("%s",&A); 
    
        for(i=0;(i

你可能感兴趣的:(2018-05-18实验二第一个实验)