欢迎来到天天文库
浏览记录
ID:26101386
大小:117.32 KB
页数:11页
时间:2018-11-24
《数据结构课程设计-二叉树的基本操作》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构课程设计报告设计题目:二叉树的基本操作专业:计算机科技院系:计算机学院姓名:xxxx学号:xxxxxxxx时间:2013年9月22日11/11目录一、设计要求-------------------------------------------------------31.问题描述----------------------------------------------------32.需求分析----------------------------------------------------3二、详细设计---
2、-----------------------------------------------------31.概要设计-----------------------------------------------------311/111.各模块源代码-----------------------------------------------3一、用户手册--------------------------------------------------------9二、总结------------------------
3、-------------------------------------1011/11一、设计要求1.问题描述设计一个与二叉树基本操作相关的演示程序。2.需求分析(1)创建二叉树。按照用户需要构建二叉树(2)分别以先序、中序、后序遍历二叉树(3)查找子节点元素二、详细设计(附源代码)1.概要设计//定义二叉树数据结构typedefstructTNode{intnum;structTNode*lchild,*rchild;}TNode;2.各模块源代码(包含main()函数)#include#include<
4、stdlib.h>#defineMaxLength100//定义二叉树数据结构typedefstructTNode{intnum;structTNode*lchild,*rchild;}TNode;//声明全局变量rootstaticTNode*root=NULL;//声明插入新结点的函数(根非空)intmyInsert_Node(TNode*p,intn);11/11//定义插入新节点的初始函数,拆开写的目的是递归时避免不必要的判断voidInsert_Node(intn){if(root==NULL)//如果根结点不存在则
5、创建{root=(TNode*)malloc(sizeof(TNode));root->num=n;root->lchild=NULL;root->rchild=NULL;}else{myInsert_Node(root,n);//非根结点的插入操作}}intmyInsert_Node(TNode*p,intn){TNode*temp;if(nnum)//比当前结点小,则访问左子树{if(p->lchild==NULL)//左子树为空,则插入该结点{temp=(TNode*)malloc(sizeof(TNode));
6、temp->num=n;temp->lchild=NULL;temp->rchild=NULL;p->lchild=temp;return0;}else//左子树不为空,则与左子树进行比较{myInsert_Node(p->lchild,n);}}else//右子树同理{if(p->rchild==NULL){temp=(TNode*)malloc(sizeof(TNode));temp->num=n;temp->lchild=NULL;temp->rchild=NULL;p->rchild=temp;11/11return0
7、;}else{myInsert_Node(p->rchild,n);}}}//前序递归遍历二叉树voidPre_travel(TNode*p){if(p){printf("%d",p->num);Pre_travel(p->lchild);Pre_travel(p->rchild);}}//中序递归遍历二叉树voidMid_travel(TNode*p){if(p){Mid_travel(p->lchild);printf("%d",p->num);Mid_travel(p->rchild);}}//后序递归遍历二叉树void
8、Suf_travel(TNode*p){if(p){Suf_travel(p->lchild);Suf_travel(p->rchild);printf("%d",p->num);}}//中序非递归遍历二叉树/*11/11从根节点开始,沿左子树一直走到没有左孩子的节点为止,并
此文档下载收益归作者所有