二叉树线索

  • 格式:doc
  • 大小:439.00 KB
  • 文档页数:5

数学与计算科学学院

实 验 报 告

实验项目名称

所属课程名称

实 验 类 型

实 验 日 期

班 级

学 号

姓 名

成 绩

1

一、实验概述:

【实验目的】

【实验原理】

【实验环境】

二、实验内容:

【实验方案】

【实验过程】(实验步骤、记录、数据、分析)

C:\Documents and Settings\Administrator\桌面\jh.cpp(70) : error C2065:

'PrintElement' : undeclared identifier

2

【实验结论】(结果)

【实验小结】(收获体会)

三、指导教师评语及成绩:

评 语

评语等级

优 良 中 及格 不及格

1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强

2.实验方案设计合理

3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)

4实验结论正确.

成 绩:

指导教师签名:

批阅日期:

附录1:源 程 序

#include

#include

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef int Status;

typedef char TElemType;

typedef enum {Link,Thread}PointerTag;

typedef struct BiThrNode{

TElemType data;

struct BiThrNode *lchild,*rchild;

PointerTag LTag,RTag;

}BiThrNode,*BiThrTree;

Status CreateBiThrTree(BiThrTree &T){ 3 char ch;

scanf("%c",&ch);

if(ch==' ') T=NULL;

else{

if(!(T=(BiThrNode*)malloc(sizeof(BiThrNode))))exit(OVERFLOW);

T->data=ch;

T->LTag=T->RTag=Link;

CreateBiThrTree(T->lchild);

CreateBiThrTree(T->rchild);

}return OK;

}

Status PrintElement(TElemType e){

printf("%c ",e);

return OK;

}

BiThrTree pre;

void InThreading(BiThrTree p)

{

if(p){

InThreading(p->lchild);

if(!p->lchild){p->LTag=Thread;p->lchild=pre;}

if(!pre->rchild){pre->RTag=Thread;pre->rchild=p;}

pre=p;

InThreading(p->rchild);}

}

Status InOrderThreading(BiThrTree &Thrt,BiThrTree T){

if(!(Thrt=(BiThrTree)malloc(sizeof(BiThrNode))))exit(OVERFLOW);

Thrt->LTag=Link;Thrt->RTag=Thread;

Thrt->rchild=Thrt;

if(!T)Thrt->lchild=Thrt;

else{

Thrt->lchild=T;pre=Thrt;

InThreading(T);

pre->rchild=Thrt;pre->RTag=Thread;

Thrt->rchild=pre;

}

return OK;

}

Status InOrderTraverse_Thr(BiThrTree T,Status(*Visit)(TElemType e)){

BiThrTree p;

p=T->lchild;

while(p!=T){

while(p->LTag==Link)p=p->lchild;

if(!Visit(p->data))return ERROR; 4 while(p->RTag==Thread && p->rchild!=T){

p=p->rchild;Visit(p->data);

}

p=p->rchild;

}printf("\n");

return OK;

}

void main()

{

BiThrTree T,Thrt;

CreateBiThrTree(T);

InOrderThreading(Thrt,T);

InOrderTraverse_Thr(Thrt,PrintElement);

}

附录2:实验报告填写说明

1.实验项目名称:要求与实验教学大纲一致。

2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。

3.实验原理:简要说明本实验项目所涉及的理论知识。

4.实验环境:实验用的软、硬件环境。

5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。

对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。对于创新性实验,还应注明其创新点、特色。

6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。

7.实验结论(结果):根据实验过程中得到的结果,做出结论。

8.实验小结:本次实验心得体会、思考和建议。

9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。