这道题。。。卡了我好长时间,再次认识到了C++的功底不足...
此篇文章讲述的是编译器的编译时间的问题。此题时间复杂度O(n)
由于一些细节的原因而造成了编译器效率低下,调试的时候卡的跟吃了翔一样,求提交代码时一直TE的心理阴影面积TAT
首先上错误代码(效率低下,没有解决问题):
#include <iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
#define MAXSIZE 100+10
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef char SElemType;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}Stack;
void InitStack(Stack &S)
{
S.base = new SElemType[MAXSIZE];
if(!S.base)
exit(OVERFLOW);
S.top=S.base;
S.stacksize=MAXSIZE;
}
Status StackEmpty(Stack S)
{
if(S.top==S.base)
return TRUE;
else
return FALSE;
}
Status GetTop(Stack S)
{
if(S.top != S.base)
return *(S.top-1);
else
return ERROR;
}