您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页实验报告--第六章--2011211102--车红岫

实验报告--第六章--2011211102--车红岫

来源:尚车旅游网
实验名称:第6章实验

实验类型:验证性实验 班级:20112111 学号:2011211102 姓名:车红岫 实验日期:2013.6

1. 问题描述

二叉树链式存储结构

 二叉链表的C语言描述

基本运算的算法——建立二叉链表、先序遍历二叉树、中序遍历二叉树、后 序遍历二叉树、后序遍历求二叉树深度 2. 数据结构设计 typedef struct bitnode

{ char data;

struct bitnode *lchild; struct bitnode *rchild; }bitnode,*bitree;

3. 算法设计

建立二叉链表、先序遍历二叉树、中序遍历二叉树、后 序遍历二叉树、后序遍历求二叉树深度

4.界面设计

5. 运行、测试

(1)运行程序,显示菜单

(2)输入序列

(3)输出结果

6.实验收获及思考

本实验对输入要求较高,运行时要特别注意。

附录:源代码

#include #include #include #include //建立二叉树

typedef struct bitnode {

char data;

struct bitnode *lchild; struct bitnode *rchild; }bitnode,*bitree; //初始化二叉树

void createbitree(bitree &t) {

char ch;

scanf(\"%c\ if(ch == ' ') {

t=NULL; return ; } else {

t=(bitnode *)malloc(sizeof(bitnode)); t->data=ch; //创建根结点 createbitree(t->lchild); //生成左子树 createbitree(t->rchild); //生成右子树 } }

void preordertraverse(bitree &t) { if(t) { printf(\"%c\ preordertraverse(t->lchild); preordertraverse(t->rchild); } }

void inordertraverse(bitree &t) { if(t) { inordertraverse(t->lchild); printf(\"%c\ inordertraverse(t->rchild); } }

void postordertraverse(bitree &t) {

if(t) { postordertraverse(t->lchild); postordertraverse(t->rchild); printf(\"%c\ } }

int depth(bitree &t) {

int depthval,depthleft,depthright; if(!t)

depthval=0; else{

depthleft=depth(t->lchild); depthright=depth(t->rchild);

depthval=1+(depthleft>depthright?depthleft:depthright); }

return depthval; }

int c; int main() {

bitree t;

printf(\"输入二叉树:\"); createbitree(t);

printf(\"先序遍历:\"); preordertraverse(t); printf(\"\\n\");

printf(\"中序遍历:\"); inordertraverse(t); printf(\"\\n\");

printf(\"后序遍历:\"); postordertraverse(t); printf(\"\\n\"); printf(\"\\n\");

printf(\"二叉树的深度为:%d\\n\ printf(\"\\n\");

system(\"pause\"); return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务