python链表和树实验报告_树和二叉树——数据结构实验报告

这是一个关于使用Python实现二叉树表示的算术表达式处理的实习报告。报告详细介绍了需求分析,包括读取前缀表达式、中缀表达式输出、变量赋值、表达式求值和复合表达式构造等操作。概要设计部分提到了采用链表二叉树和辅助栈的存储结构来定义表达式的抽象数据类型。
摘要由CSDN通过智能技术生成

实习报告

题目:

编写一个实现基于二叉树表示的算术表达式

Expression

操作程序

班级:

姓名:

学号:

完成日期

//

一、

需求分析

算术表达式

Expression

内可以含有变量(

a

z

)

、常量(

0

9

)和二元算术

符(

+,-,*,/,

∧(乘幂)

)

。实现以下操作:

(

1

)

ReadExpr(E)

――以字符序列的形式输入语法正确的前缀表达式并构造

表达式

E

(

2

)

WriteExpr(E)

――用带括号的中缀表达式输出表达式

E

(

3

)

Assign(V

c)

――实现对变量

V

的赋值(

V=c

)

,变量的初值为

0

(

4

)

Value(E)

――对算术表达式

E

求值。

(

5

)

CompoundExpr(p,E1,E2)

――构造一个新的复合表达式(

E1

)

p

(

E2

)

二、

概要设计

1

、数据类型的声明:

在这个课程设计中,采用了链表二叉树的存储结构,以及两个顺序栈的辅助

存储结构

/*

头文件以及存储结构

*/

#include

#include

#include

#include

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define OVERFLOW 0

typedef int Status;

2

、表达式的抽象数据类型定义

ADT Expression

{

数据对象

D

D

是具有数值的常量

C

和没有数值的变量

V

数据关系:

R={

或者

C)P(V

或者

C)>|V,C

D, 

或者

C)P(V

或者

C)>

表示由运算符

P

结合起来的表达式

E}

基本操作:

Status Input_Expr(&string,flag)

操作结果:

以字符序列的形式输入语法正确的前缀表达式,

保存到字符

string

参数

flag

表示输出的提示信息是什么,

输入成功返回

OK

否则,返回

ERROR

void judge_value(&E,&string,i)

初始条件:树

E

存在,表达式的前缀字符串

string

存在;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值