二叉树的生成和遍历

上传人:EY****y 文档编号:38059193 上传时间:2021-11-05 格式:DOC 页数:18 大小:359KB
返回 下载 相关 举报
二叉树的生成和遍历_第1页
第1页 / 共18页
二叉树的生成和遍历_第2页
第2页 / 共18页
二叉树的生成和遍历_第3页
第3页 / 共18页
点击查看更多>>
资源描述
请下载支持!莆螆膁螄羃罿莁 数据结构衿蚂蚃蒄螈袁芃 课程设计报告袈蒂羅蚆莂肂袆 二叉树的生成和遍历蚄蒆蝿蕿羁肃蚈专业信息管理与信息系统羆薈肀肄薄薆荿班级110514蒇薀袂肅虿袀蒃 小组成员8 汤文莹肁螁薅薈莁莂蒇 9 王玉珏袄肆莇袂蒅蚄蕿 0 张蓓蕾薇蒀肈芃膅蒈薂 1 张慕琦莈蕿膂蚅芇蝿螃 课程设计:二叉树的生成和遍历一、羀肁肆莀艿薁螄 任务描述1.膄薇芈螀蚄芄膇 将二叉树以广义表形式存储在一个TXT 文件上,通过读取 TXT 文件,建立二叉树;2.袄膇芁薃蚅肆蒁 求树的高度3.羆螂蒂膆腿羁羂 实现二叉树的前序、中序和后序遍历;4.羈薄蚇肇蒂袁芄 将输出结果存储在文件内。莃袃袆虿羄螅聿 二、问题分析莄罿膀袃芆羇葿1.设计思想请下载支持!袇蚀蚁螇螆羀节 以广义表格式输入一个二叉树,将其接收至一维数组中,利用栈结构建立二叉链表树;通过先、中、后访问根结点递归算法遍历二叉树;利用队列的入队、出队操作实现二叉树的层次遍历。膁螄羃罿莁莅袅 例如: a(c(,d),f(g,) 建立如下图所示二叉树。蝿羅袂肀薅蚃蒄螈袁芃莆螆莇袂蒅蚄蕿肁螁 2.数据结构肈芃膅蒈薂袄肆 定义队列数组长度膂蚅芇蝿螃薇蒀 # define QueueMaxSize 20肆莀艿薁螄莈蕿 定义栈数组长度芈螀蚄芄膇羀肁 # define StackMaxSize 10芁薃蚅肆蒁膄薇 定义二叉树数据类型蒂膆腿羁羂袄膇 typedef char ElemType;蚇肇蒂袁芄羆螂 struct BTreeNode袆虿羄螅聿羈薄 ElemType data;膀袃芆羇葿莃袃structBTreeNode *left;蚁螇螆羀节莄罿struct BTreeNode *right;羃罿莁莅袅袇蚀 BTreeNode;螈袁芃莆螆膁螄 3.主要模块设计莂肂袆衿蚂蚃蒄 初始化二叉树羁肃蚈袈蒂羅蚆 void InitBTree(struct BTreeNode* BT)薄薆荿蚄蒆蝿蕿 根据 a 所定义的二叉树广义表字符串建立对应的存储结构请下载支持!虿袀蒃羆薈肀肄 void CreateBTree(struct BTreeNode * BT,char * a)莁莂蒇蒇薀袂肅 前序遍历二叉树蒅蚄蕿肁螁薅薈膅蒈薂袄肆莇袂芇蝿螃薇蒀肈芃void Preorder(struct BTreeNode * BT)if(BT!=NULL) 艿薁螄莈蕿膂蚅 printf(%c,BT-data); /*访问根结点 */蚄芄膇羀肁肆莀Preorder(BT-left); /* 前序遍历左子树*/蚅肆蒁膄薇芈螀 Preorder(BT-right); /* 前序遍历右子树*/腿羁羂袄膇芁薃 蒂袁芄羆螂蒂膆 羄螅聿羈薄蚇肇 中序遍历二叉树芆羇葿莃袃袆虿 void Inorder(struct BTreeNode * BT)螆羀节莄罿膀袃 莁莅袅袇蚀蚁螇 if(BT!=NULL) 芃莆螆膁螄羃罿 Inorder(BT-left); /*中序遍历左子树*/袆衿蚂蚃蒄螈袁printf(%c,BT-data); /*访问根结点 */蚈袈蒂羅蚆莂肂Inorder(BT-right); /* 中序遍历右子树*/荿蚄蒆蝿蕿羁肃 蒃羆薈肀肄薄薆 蒇蒇薀袂肅虿袀 后序遍历二叉树蕿肁螁薅薈莁莂 void Postorder(struct BTreeNode * BT)薂袄肆莇袂蒅蚄 螃薇蒀肈芃膅蒈 if(BT!=NULL) 螄莈蕿膂蚅芇蝿Postorder(BT-left); /* 后序遍历左子树*/请下载支持!膇羀肁肆莀艿薁蒁膄薇芈螀蚄芄Postorder(BT-right); /* 后序遍历右子树*/printf(%c,BT-data); /*访问根结点 */羂袄膇芁薃蚅肆 芄羆螂蒂膆腿羁 聿羈薄蚇肇蒂袁 由指针指向的一颗二叉树的深度葿莃袃袆虿羄螅 int BTreeDepth(struct BTreeNode * BT)节莄罿膀袃芆羇 按层遍历由BT 指针所指向的二叉树袅袇蚀蚁螇螆羀 void Levelorder(struct BTreeNode * BT蒀肈芃膅蒈薂袄 将以广义表形式输入的二叉树接收到数组str80 中,成功建立蒆蝿蕿羁肃蚈袈 主菜单薈肀蚂蚃薀 袂螁 薅蒂羅肄薄蒄螈肅 虿薈 莁蚆莂薆荿袁芃袀 蒃莂 蒇肂袆蚄莆羆蒇衿先 中后广二度肆莇袂蒅蚄蕿肁螆膁螄羃罿莁莅蕿膂蚅芇蝿螃薇 4.详细设计肁肆莀艿薁螄莈 1)二叉树的建立薇芈螀蚄芄膇羀 其中 mark 的值 1、2、 3、 4 分别指 stri 为字母、(、,、 );膇芁薃蚅肆蒁膄 tag 为左、右孩子的标志;螂蒂膆腿羁羂袄请下载支持!薄蚇肇蒂袁芄羆肄蚆莂肂袆衿蚂蚃 str0蕿蒄螈袁芃莆螆膁 mark=1 ;袃袆虿羄螅聿羈 检查罿膀袃蚀蚁螇螄羃罿肂袆衿罿肇蒂袁芄羆莀艿薁螄莈蕿肃蚈袈蒂羅蚆莂莀薈莁莂蒇蒇薀肅膆mark=1虿羄螅聿羈薄葿袂蒅蚄蕿肁螁螀蚄芄膇羀肁肆薅 mark=2螇mark=3薆荿蚄蒆蝿蕿羁新建结点 p袀蒃羆薈肀肄薄袁莂蒇蒇薀袂薁螄莈蕿膂蚅芇蝿螃薇蒀肈芃膅栈顶栈顶蒈薂袄肆莇袂蒅 循环结束后袃芆羇葿莃袃袆芅芆肈莁蒅袇罿 2.二叉树的层次遍历肅薈芀羆蚆蒀蒃 访问元素所指结点,若该元素所指结点的左右孩子结点非空,则该元素所指结点的左孩子指针和右孩子指针顺序入队。请下载支持!膂蚃蚇膈膀羃芈 初始化队芄 芅 莀膄蒆蚈芃蒄肇薀薂螃蒆蚀 羀 蒅虿腿膂羄羅肁肀 出队 p;打肃袆袇螈肂膆蒈膃螆艿螁袅膇袈螀羃袃膅莇羂膈 芀 蚁膁袂莄芈袈螁蚃莅 肅 螀螁螄节薇荿蚂袆聿莃膃蝿羁芁螆莈袁薃肄羈葿蒁函数实现肈莁蒅袇罿莀螅 # include芀羆蚆蒀蒃芅芆 # include膃蝿羁芁螆肅薈 # define QueueMaxSize 20/*定义队列数组长度 */蚇膈膀羃芈聿莃 # define StackMaxSize 10/*定义栈数组长度 */蚈芃蒄肇薀膂蚃 typedef char ElemType;膂羄羅肁肀膄蒆 struct BTreeNode蒅肈芇膃蚅虿腿 ElemType data;袇螈肂膆蒈蚀羀struct BTreeNode *left;艿袀蚆莆膁肃袆struct BTreeNode *right;羃袃膅莇羂膃螆BTreeNode;莄芈袈螁蚃袈螀 void InitBTree(struct BTreeNode* BT)请下载支持!膇荿羃肄螇膁袂/*初始化二叉树,即把树根指针置空*/螀螂薅薆蚁螁袅 蚁肆蝿羈袄莅肅 *BT=NULL;节薇荿蚂袆膈芀 蒆衿薁肃羇螁螄 void CreateBTree(struct BTreeNode * BT,char * a)/*根据 a 所定义的二叉树广义表字符串建立对应的存储结构*/莀蚄薄袆羈薂螃 薃肄羈葿蒁芄芅 struct BTreeNode * p;蒅袇罿莀螅莈袁/*定义 s 数组作为存储根结点指针的栈使用*/蚆蒀蒃芅芆肈莁 struct BTreeNode * sStackMaxSize;羁芁螆肅薈芀羆膀羃芈聿莃膃蝿/*定义 top 作为 s 栈的栈顶指针,初值为-1 ,表示空栈 */int top=-1;蒄肇薀膂蚃蚇膈/*用 k 作为处理结点的左子树和右子树的标记,k=1 处理左子树, k=2处理右子树 */羅肁肀膄蒆蚈芃 int k;芇膃蚅虿腿膂羄肂膆蒈蚀羀蒅肈/*用 i 扫描数组a 中存储的二叉树广义表字符串,初值为0*/int i=0;蚆莆膁肃袆袇螈/*把树根指针置为空,即从空树开始建立二叉树*/膅莇羂膃螆艿袀 *BT=NULL;袈螁蚃袈螀羃袃/*每循环一次处理一个字符,直到扫描到字符串结束0 为止 */羃肄螇膁袂莄芈 while (ai)薅薆蚁螁袅膇荿 蝿羈袄莅肅螀螂 switch(ai)荿蚂袆膈芀蚁肆 薁肃羇螁螄节薇 case :/*对空格不做任何处理*/请下载支持!薄袆羈薂螃蒆衿羈葿蒁芄芅莀蚄罿莀螅莈袁薃肄蒃芅芆肈莁蒅袇break;case (:if(top=StackMaxSize-1)螆肅薈芀羆蚆蒀printf(栈空间太小,需增加StackMaxSize!n);芈聿莃膃蝿羁芁exit(1);薀膂蚃蚇膈膀羃肀膄蒆蚈芃蒄肇top+;蚅虿腿膂羄羅肁stop=p;蒈蚀羀蒅肈芇膃k=1;膁肃袆袇螈肂膆break;羂膃螆艿袀蚆莆 case ):蚃袈螀羃袃膅莇 if(top=-1)螇膁袂莄芈袈螁 蚁螁袅膇荿羃肄 printf(二叉树广义表字符串错!n);袄莅肅螀螂薅薆 exit(1);袆膈芀蚁肆蝿羈 羇螁螄节薇荿蚂 top-;羈薂螃蒆衿薁肃 break;蒁芄芅莀蚄薄袆 case ,:螅莈袁薃肄羈葿 k=2;芆肈莁蒅袇罿莀 break;薈芀羆蚆蒀蒃芅莃膃蝿羁芁螆肅default:p=(struct BTreeNode * )malloc(sizeof(struct BTreeNode);请下载支持!蚃蚇膈膀羃芈聿 p-data=ai;蒆蚈芃蒄肇薀膂 p-left=p-right=NULL;腿膂羄羅肁肀膄 if(*BT=NULL)羀蒅肈芇膃蚅虿 *BT=p;袆袇螈肂膆蒈蚀 else螆艿袀蚆莆膁肃 螀羃袃膅莇羂膃 if(k=1)袂莄芈袈螁蚃袈 stop-left=p;袅膇荿羃肄螇膁 else肅螀螂薅薆蚁螁 stop-right=p;芀蚁肆蝿羈袄莅 螄节薇荿蚂袆膈 /*switch end*/螃蒆衿薁肃羇螁/*为扫描下一个字符串修改i 值 */芅莀蚄薄袆羈薂 i+;袁薃肄羈葿蒁芄 莁蒅袇罿莀螅莈 羆蚆蒀蒃芅芆肈 void PrintBTree(struct BTreeNode * BT)蝿羁芁螆肅薈芀/*输出二叉数的广义表表示*/膈膀羃芈聿莃膃 芃蒄肇薀膂蚃蚇 /* 数为空时自然结束递归,否则执行如下操作*/羄羅肁肀膄蒆蚈 if(BT=NULL)肈芇膃蚅虿腿膂 螈肂膆蒈蚀羀蒅 /* 输出根结点的值*/袀蚆莆膁肃袆袇 printf(%c,BT-data);请下载支持!袃膅莇羂膃螆艿芈袈螁蚃袈螀羃荿羃肄螇膁袂莄/*输出左、右子树*/if(BT-left!=NULL | BT-right!=NULL)螂薅薆蚁螁袅膇 printf();/*输出左括号 */肆蝿羈袄莅肅螀薇荿蚂袆膈芀蚁衿薁肃羇螁螄节PrintBTree(BT-left); /*输出左子树 */if(BT-right!=NULL)PrintBTree(BT-right); /*输出右子树 */蚄薄袆羈薂螃蒆肄羈葿蒁芄芅莀printf();/*输出右括号 */袇罿莀螅莈袁薃 蒀蒃芅芆肈莁蒅 芁螆肅薈芀羆蚆 void Preorder(struct BTreeNode * BT)羃芈聿莃膃蝿羁 肇薀膂蚃蚇膈膀 if(BT!=NULL) 肁肀膄蒆蚈芃蒄 printf(%c,BT-data); /*访问根结点 */膃蚅虿腿膂羄羅Preorder(BT-left); /*前序遍历左子树 */膆蒈蚀羀蒅肈芇 Preorder(BT-right); /*前序遍历右子树 */莆膁肃袆袇螈肂 莇羂膃螆艿袀蚆 螁蚃袈螀羃袃膅 void Inorder(struct BTreeNode * BT)肄螇膁袂莄芈袈 薆蚁螁袅膇荿羃 if(BT!=NULL) 羈袄莅肅螀螂薅 Inorder(BT-left); /*中序遍历左子树 */蚂袆膈芀蚁肆蝿printf(%c,BT-data); /*访问根结点 */请下载支持!肃羇螁螄节薇荿Inorder(BT-right); /*中序遍历右子树*/袆羈薂螃蒆衿薁 葿蒁芄芅莀蚄薄 莀螅莈袁薃肄羈 void Postorder(struct BTreeNode * BT)芅芆肈莁蒅袇罿 肅薈芀羆蚆蒀蒃 if(BT!=NULL) 聿莃膃蝿羁芁螆Postorder(BT-left); /*后序遍历左子树 */膂蚃蚇膈膀羃芈Postorder(BT-right); /*后序遍历右子树 */膄蒆蚈芃蒄肇薀printf(%c,BT-data); /*访问根结点 */虿腿膂羄羅肁肀 蚀羀蒅肈芇膃蚅 肃袆袇螈肂膆蒈 void Levelorder(struct BTreeNode * BT)/*按层遍历由BT 指针所指向的二叉树*/膃螆艿袀蚆莆膁 袈螀羃袃膅莇羂 struct BTreeNode * p;膁袂莄芈袈螁蚃/*定义队列所使用的数组空间,元素类型为指向结点的指针类型*/螁袅膇荿羃肄螇struct BTreeNode* qQueueMaxSize;莅肅螀螂薅薆蚁/* 定义队首指针和队尾指针,初始均置0 表示空队 */膈芀蚁肆蝿羈袄int front=0,rear=0;螁螄节薇荿蚂袆/*将树根指针进队 */薂螃蒆衿薁肃羇if(BT!=NULL) 芄芅莀蚄薄袆羈rear=(rear+1)% QueueMaxSize;莈袁薃肄羈葿蒁qrear=BT;肈莁蒅袇罿莀螅芀羆蚆蒀蒃芅芆/*当队列非空时执行循环*/请下载支持!膃蝿羁芁螆肅薈 while(front!=rear) 蚇膈膀羃芈聿莃/*使队首指针指向队首元素*/蚈芃蒄肇薀膂蚃front=(front+1)% QueueMaxSize;膂羄羅肁肀膄蒆蒅肈芇膃蚅虿腿袇螈肂膆蒈蚀羀/*删除队首元素,输出队首元素所指结点的值*/p=qfront;printf(%c,p-data);艿袀蚆莆膁肃袆羃袃膅莇羂膃螆莄芈袈螁蚃袈螀膇荿羃肄螇膁袂螀螂薅薆蚁螁袅蚁肆蝿羈袄莅肅节薇荿蚂袆膈芀蒆衿薁肃羇螁螄莀蚄薄袆羈薂螃薃肄羈葿蒁芄芅蒅袇罿莀螅莈袁/*若结点存在左孩子,则左孩子指针结点进队*/if(p-left!=NULL)rear=(rear+1)% QueueMaxSize;qrear=p-left;/*若结点存在右孩子,则右孩子指针结点进队*/if(p-right!=NULL)rear=(rear+1)% QueueMaxSize;qrear=p-right;蚆蒀蒃芅芆肈莁 羁芁螆肅薈芀羆 膀羃芈聿莃膃蝿 蒄肇薀膂蚃蚇膈int BTreeDepth(struct BTreeNode * BT)/*求由指针指向的一颗二叉树的深度 */羅肁肀膄蒆蚈芃 芇膃蚅虿腿膂羄 if(BT=NULL)肂膆蒈蚀羀蒅肈 return 0; /*对于空树,返回0 并结束递归 */请下载支持!蚆莆膁肃袆袇螈 else膅莇羂膃螆艿袀 /*计算左子树的深度*/袈螁蚃袈螀羃袃 int dep1=BTreeDepth(BT-left);羃肄螇膁袂莄芈薅薆蚁螁袅膇荿/*计算右子树的深度*/int dep2=BTreeDepth(BT-right);蝿羈袄莅肅螀螂/*返回树的深度*/荿蚂袆膈芀蚁肆 if(dep1dep2)薁肃羇螁螄节薇 return dep1+1;薄袆羈薂螃蒆衿 else羈葿蒁芄芅莀蚄 return dep2+1;罿莀螅莈袁薃肄 蒃芅芆肈莁蒅袇 螆肅薈芀羆蚆蒀 void menu()/窗体显示菜单芈聿莃膃蝿羁芁 薀膂蚃蚇膈膀羃 printf(n=请在下列序号中选择一个并输入:n);肀膄蒆蚈芃蒄肇 printf(1)-重新输入二叉树n);蚅虿腿膂羄羅肁 printf(2)-前序遍历二叉树n);蒈蚀羀蒅肈芇膃 printf(3)-中序遍历二叉树n);膁肃袆袇螈肂膆 printf(4)-后序遍历二叉树n);羂膃螆艿袀蚆莆 printf(5)-广度优先遍历二叉树n);蚃袈螀羃袃膅莇 printf(6)-显示二叉树深度n);螇膁袂莄芈袈螁 printf(0)-退出n);蚁螁袅膇荿羃肄 袄莅肅螀螂薅薆 void Wrong()/错误提示请下载支持!袆膈芀蚁肆蝿羈 羇螁螄节薇荿蚂 printf(n=按键错误 !n);羈薂螃蒆衿薁肃 getchar();/保留错误信息的显示蒁芄芅莀蚄薄袆 螅莈袁薃肄羈葿 void main()芆肈莁蒅袇罿莀 薈芀羆蚆蒀蒃芅 /* 定义指向二叉树节点的操作,并用指针作为树根指针*/莃膃蝿羁芁螆肅 struct BTreeNode * bt;蚃蚇膈膀羃芈聿蒆蚈芃蒄肇薀膂/*定义一个用于存放二叉树广义表的字符数组*/char b50;腿膂羄羅肁肀膄/*定义 ElemType 类型的对象 X 和指针对象 px*/羀蒅肈芇膃蚅虿ElemType x,* px;袆袇螈肂膆蒈蚀/*初始化二叉树,即置树根bt 为空 */螆艿袀蚆莆膁肃 InitBTree(&bt);螀羃袃膅莇羂膃/*从键盘向字符数组 b 输入二叉树广义表标识的字符串*/袂莄芈袈螁蚃袈printf(输入二叉树广义表字符串:n);袅膇荿羃肄螇膁printf(输入格式为 :a(c(m,d(s,z),e(t(h,k),b(i)n);肅螀螂薅薆蚁螁芀蚁肆蝿羈袄莅螄节薇荿蚂袆膈螃蒆衿薁肃羇螁scanf(%s,b);/*建立以 bt 作为树根指针的二叉树的链接存储结构*/CreateBTree(&bt,b);menu();芅莀蚄薄袆羈薂袁薃肄羈葿蒁芄莁蒅袇罿莀螅莈while(10)/界面的显示实现int p;请下载支持!羆蚆蒀蒃芅芆肈蝿羁芁螆肅薈芀膈膀羃芈聿莃膃芃蒄肇薀膂蚃蚇羄羅肁肀膄蒆蚈肈芇膃蚅虿腿膂螈肂膆蒈蚀羀蒅袀蚆莆膁肃袆袇袃膅莇羂膃螆艿scanf(%d,&p);switch(p)case 0:printf(=谢谢使用 !n);getchar();break;case 1:printf(请重新输入二叉树广义表字符串:n);芈袈螁蚃袈螀羃 printf(输入格式为 :a(c(m,d(s,z),e(t(h,k),b(i)n);荿羃肄螇膁袂莄scanf(%s,b);螂薅薆蚁螁袅膇/*建立以 bt 作为树根指针的二叉树的链接存储结构*/肆蝿羈袄莅肅螀薇荿蚂袆膈芀蚁衿薁肃羇螁螄节蚄薄袆羈薂螃蒆肄羈葿蒁芄芅莀CreateBTree(&bt,b);printf(n);getchar();break;case 2:袇罿莀螅莈袁薃/*以广义表形式输入二叉树*/蒀蒃芅芆肈莁蒅芁螆肅薈芀羆蚆羃芈聿莃膃蝿羁肇薀膂蚃蚇膈膀PrintBTree(bt);printf(n);/*前序遍历以bt 为树根指针的二叉树*/printf(前序 : );肁肀膄蒆蚈芃蒄 Preorder(bt);膃蚅虿腿膂羄羅 printf(n);请下载支持!膆蒈蚀羀蒅肈芇莆膁肃袆袇螈肂莇羂膃螆艿袀蚆螁蚃袈螀羃袃膅getchar();break;case 3:/*以广义表形式输入二叉树*/肄螇膁袂莄芈袈薆蚁螁袅膇荿羃PrintBTree(bt);printf(n);羈袄莅肅螀螂薅/*中序遍历以bt 为树根指针的二叉树*/蚂袆膈芀蚁肆蝿肃羇螁螄节薇荿袆羈薂螃蒆衿薁葿蒁芄芅莀蚄薄莀螅莈袁薃肄羈芅芆肈莁蒅袇罿肅薈芀羆蚆蒀蒃printf(中序 : );Inorder(bt);printf(n);getchar();break;case 4:/*以广义表形式输入二叉树*/聿莃膃蝿羁芁螆膂蚃蚇膈膀羃芈PrintBTree(bt);printf(n);膄蒆蚈芃蒄肇薀/*后序遍历以bt 为树根指针的二叉树*/虿腿膂羄羅肁肀printf(后序 : );蚀羀蒅肈芇膃蚅肃袆袇螈肂膆蒈膃螆艿袀蚆莆膁袈螀羃袃膅莇羂膁袂莄芈袈螁蚃Postorder(bt);printf(n);getchar();break;case 5:螁袅膇荿羃肄螇/*以广义表形式输入二叉树*/请下载支持!莅肅螀螂薅薆蚁膈芀蚁肆蝿羈袄螁螄节薇荿蚂袆薂螃蒆衿薁肃羇PrintBTree(bt);printf(n);/*接层遍历以bt 为树根指针的二叉树*/printf(广度优先 : );芄芅莀蚄薄袆羈莈袁薃肄羈葿蒁肈莁蒅袇罿莀螅芀羆蚆蒀蒃芅芆膃蝿羁芁螆肅薈蚇膈膀羃芈聿莃Levelorder(bt);printf(n);getchar();break;case 6:/*以广义表形式输入二叉树*/蚈芃蒄肇薀膂蚃膂羄羅肁肀膄蒆PrintBTree(bt);printf(n);蒅肈芇膃蚅虿腿/*求出以 bt 为树根指针的二叉树的深度*/袇螈肂膆蒈蚀羀 printf(二叉树的深度: );艿袀蚆莆膁肃袆羃袃膅莇羂膃螆莄芈袈螁蚃袈螀膇荿羃肄螇膁袂螀螂薅薆蚁螁袅蚁肆蝿羈袄莅肅节薇荿蚂袆膈芀蒆衿薁肃羇螁螄printf(%dn,BTreeDepth(bt);getchar();break;default:Wrong();printf(n请按任意键继续.);getchar();break;莀蚄薄袆羈薂螃 薃肄羈葿蒁芄芅 请下载支持!蒅袇罿莀螅莈袁 三、蚆蒀蒃芅芆肈莁 运行结果羁芁螆肅薈芀羆 四、设计总结膀羃芈聿莃膃蝿 二叉树是数据结构的的基本内容。 虽然程序规模不大,经过查找资料,参考网上以及课本上的实例, 仍免不了各种错误的出现。 编程过程需要很大的毅力和耐心,而且要有良好的思维和扎实的专业基础知识, 所以我们需要不断的学习,发现自身不足之处并改正它,逐步提高自己。程序设计让我们懂了许课程设计究竟是什么意思了, 要用我们的双手编写出一个个程序来为他人带来方便。 其中也遇到了现实中的一些问题, 比如说,数据量很的问题,这在程序的各种算法上提出了很严的要求, 数据量大就需要的时间就多,相应的效率问题也很重要。在银行、通信、军事上如果一个程序在运算大量数据上能提高一点效率那么它就能节省许多的时间和金钱。 这也就是一个创造吧。在以后的程序设计中都应该好好思考这个问题。有一高效率才是最好程序。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!