做作业咯:用二叉树后序遍历描述a+b*(c-d)-e/f

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:17:53
。。。。。用C语言描述。。。の。。有没高手指点下啊。。

题目内的表达式叫做中缀表达式,即中根遍历一个二叉树,以此来构造出一个二叉树,再用后序遍历一遍就可以出解

如果上面的内容看得懂,结果很简单啦!

程序用堆栈实现

#include<stdio.h>
#include<stdlib.h>

#define TRUE 1
#define FALSE 0
#define MAXNUM 100
typedef int DataType;
typedef struct
{
DataType s[MAXNUM];
int t;
}SeqStack,*PSeqStack;

//构造一个空栈
PSeqStack createEmptyStack_seq()
{
PSeqStack pastack;
pastack=(SeqStack*)malloc(sizeof( SeqStack));

if (pastack==NULL)
{
printf("空间不够!!\n");
}
else
{
pastack->t=-1;
}
return pastack;//返回空栈顶
}

//清空栈
int isEmptyStack_seq(PSeqStack pastack)
{
return pastack->t==-1;

}

//入栈
void push_seq(PSeqStack pastack, DataType x)
{
if (pastack->t >= MAXNUM - 1)

printf("上溢!\n");
else