存在着对应关系,编写把以前缀形式输入的合法算术表达式转换为中缀表达式,再转换为后缀表达式,并求表达式的值。 2.具体目标包括: (1)把前缀表达式转换为中缀表达式; (2)输出中缀表达式; (3)把中缀表达式转换为后缀表达式; (4)利用栈结构实现后缀表达式的求值; 3.定义栈的抽象数据类型: ADT Stack {数据对象: D={ai|ai ∈ElemSet,i=1,2,...,n,n ≥0} 数据关系: R1={<ai-1, ai>|ai-1, ai∈D,i=2,...,n } 基本操作: InitStack(SqStack *S) Push(SqStack *S,SNodeEType e) Pop(SqStack *S,SNodeEType *e) StackEmpty(SqStack *S) }ADT Stack 二、概要设计 1、程序包括两部分( 1)结点类型 typedef struct BiTNode 山东科技大学学生课程设计第10页{TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; typedef struct Node {SNodeEType data; struct Node *next; }SElemType; typedef struct Stack {SElemType *base; SElemType *top; }SqStack; typedef struct QNode{// 队列 QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LinkQueue; (2)基本操作的实现(见附:主要源代码) 2 、主要模块