帮忙改改

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:09:34
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;

#include"stdio.h"
#include"malloc.h"

int InitStack(SqStack &S){
S.base=(int *)malloc(STACK_INIT_SIZE * sizeof(int));
if(!S.base) return flow;
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}

int Push(SqStack &S,int &e){
if(S.top-S.base>=S.stacksize){
S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
if(!S.base) return flow;
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}

int Pop(SqStack &S,int &e){
if(S.top==S.base) return ERROR;
e=*--S.top;
return OK;
}
void main()
{
void conversion(){
InitStack(S);

你这是作业题?作业题的话自己做.题目还是非常简单的.
只说一点,是老师给地作业题的话.老师的水平也不怎么样!
编程思想有2个地方实在让人受不了!
1)既然用了typedef,为什么就不能定义得健壮点?可以#define DATA int然后用到int的地方都用DATA替换.题目给的代码好不专业!
2)既然用了&,说明程序可以用c++的技术,那为什么还要用C的过程设计语言?不能把栈封装成类?因为过程设计语言落后,所以后来出现了面向对象的技术,会C++就应该坚持面向对象的程序设计技术.如果说你现在学的是C的话,还是用纯指针的东西,&不是C的东西(一碰到指针的地方就偷懒用&,初学者永远没机会学指针了,有些情况下&是不起作用的,而且对&的理解是建立在对指针理解的基础上使用的,不会指针,摆脱不了初学者的水平).老师有点误人子弟!给的程序代码4不象!!

在改中。