1 / 16
文档名称:

表达式翻译数据结构课程设计.docx

格式:docx   大小:165KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

表达式翻译数据结构课程设计.docx

上传人:shijijielong001 2022/6/14 文件大小:165 KB

下载得到文件列表

表达式翻译数据结构课程设计.docx

文档介绍

文档介绍:目录
需求分析3


系统设计3
程序流程图4
类关系图6
实现代码7
个人总结7
参考书目7
一•需求分析

编写完整程序,将中缀表达式翻译成后缀表达式。表达式由操rear;
}Queue;
初始化队列
StatusQueueInit(Queue*q)
队列的插入:
StatusQueueInsert(Queue*q,QueueElemtypevalue)
出队列
StatusQueueInsert_operatorValue(Queue*q,QueueOperatorValuevalue)
中缀转后缀函数
Statuslnfix2Postfix(Queue*q)
打印后缀表达式
StatusShowQueue(Queueq)
主函数
intmain(){
Queueq;
Infix2Postfix(&q);
ShowQueue(q);
return0;
StatusStacklnit(Stack*s){//初始化栈
s->base=(StackElemtype*)malloc(sizeof(StackElemtype)*STACK_SIZE);//申请栈的空

if(!s->base)
returnERROR;
s->top=s->base;
s->stackSize=STACK_SIZE;
returnOK;
}
StatusPop(Stack*s,StackElemtype*value){//出栈操作
if(s->base==s->top){
printf("\nstackempty\n");
returnERROR;
}
*value=*(--(s->top));
returnOK;
}
StatusPush(Stack*s,StackElemtypevalue){//进栈操作
if(s->top-s->base==s->stackSize){
s->base=(StackElemtype*)realloc(s->base,sizeof(StackElemtype)*(STACK_INCREMENT+
STACK_SIZE));
if(!s->base)
returnERROR;
s->top=s->base+STACK_SIZE;
s->stackSize=STACK_SIZE+STACK_INCREMENT;
}
*(s->top)=value;
s_>top++;
returnOK;
}
//求栈的长度
intStackLength(Stacks){
-;
typedefdoubleQueueElemtype;
typedefcharQueueOperatorValue;
typedefstructQueueNode{
QueueElemtypedata;
QueueOperatorValueoperator;structQueueNode*next;
intflag;
}QueueNode,*QueueNodePtr;
typedefstructQueue{
QueueNodePtrfront;
QueueNodePtrrear;
}Queue;
//定义队列结构体
StatusQueueInit(Queue*q){
q->front二(QueueNodePtr)malloc(sizeof(QueueNode));
if(!q->front)
returnERROR;
q->rear=q->front;
q->rear->next=NULL;
returnOK;
}
StatusQueueInsert(Queue*q,QueueElemtypevalue){
QueueNodePtrnew;
new=(QueueNodePtr)malloc(sizeof(QueueNode));
if(!new)
returnERROR;
new->data=value;
new->flag=1;
new->next二NULL;
//队列初始化
//队列插入
q->rear->next二new;
q->rear=new;
returnOK;
}
StatusQueueInsert_operatorValue(Queue*q,QueueOperatorValuevalue){
QueueNodePtrnew;
new=(QueueNodePtr)malloc(sizeof(QueueNode));