一、如何用word画一幅二叉树图啊
这个不是太难,你自己完成可以做到
1、先画一个圆圈,然后复制就得另个圆圈,斜线画二条,向上斜和向下斜的各一条
2、调整好斜线和圆圈的角度,使成的一三角的形态,全选,复制,从左向右粘贴
3、全部组件出来后,稍调整下圆圈和斜线的角度,就成了
在画当中,关键是圆圈的距离和斜线的角度不好掌握,可以用参照线呀,画一个表格,然后将圆圈放在表格线的交点上,斜线从一个交点延长到另一个交点,只要表格的高和宽一致,就能画出一个漂亮的图出来
画好后,别忘了组合下,免得不小心弄乱了
二、几何画板里怎么画二叉树
你所说的几何画板画二叉树,是绘制勾股树吗?只听说过绘制这个的,下面是具体的绘制教程:用几何画板画勾股树的方法1、用旋转的方法画正方形ABCD(1)绘制出线段AB。
(2)双击点A,把点A标记为旋转中心。选中点B,选择“变换”—“旋转”命令,将点B旋转90度,得到点D。
(3)双击点D,把点D标记为旋转中心。选中点A,选择“变换”—“旋转”命令,将点A旋转-90度,得到点C。
(4)绘制出线段AD、DC、BC。2、构造DC的中点E,并以点E为圆心,EC为半径构造圆(1)选中线段DC,选择“构造”—“中点”命令,绘制出DC的中点E。
(2)依次选中点E和点C,选择“构造”—“以圆心和圆周上点绘圆”命令。3、构造圆弧CD,并在弧CD上取点F(1)选中点C、D和圆E,选择“构造”—“圆上的弧”命令。
(2)保持弧的选中状态,选择“构造”—“弧上的点”命令,任意绘制出点F。4、构建勾股树动画按钮(1)选择点F,单击“编辑”—“操作类按钮”—“动画”,打开“操作类按钮动画点的属性”对话框,选择“动画”选项卡,将“方向”设为“双向”;“速度”设为“慢速”。
(2)再选择“标签”选项卡,在标签栏输入“勾股数动画按钮”,单击“确定”。(3)把按钮的位置调整。
5、隐藏部分对象隐藏圆E、圆弧CD、点E,如下图所示。6、度量出FD的长度,构造出正方形的内部(1)选择动点F和定点D,单击“度量”——“距离”,测出距离FD;(2)选择点A、B、C、D,单击“构造”—“四边形内部”。
7、设置默认颜色参数选择FD=1.51厘米、正方形内部,单击“显示”—“颜色”“参数”,打开颜色参数对话框,采用默认设置,单击“确定”按钮。8、新建参数单击“数据”菜单—“新建参数”,打开新建参数对话框,在“名称”框中输入“参数”,单击“确定”,新建一个“参数按钮”。
如下图所示。9、构建迭代(1)依次选择点B、A、“参数=1.00”按钮后,按住Shift键不放,单击“变换”—“深度迭代”,打开“迭代”对话框。
(2)在映像处依次单击点C、F。(3)单击“结构”按钮,单击“添加新的映射”。
(4)在映像2处依次单击点F、D,单击“迭代”按钮。(5)调整按钮位置。
10、绘制勾股树选择“参数=1.00”按钮,按数字键盘上的数字按钮,将参数变到5,出现如下图所示图形。单击“勾股数动画按钮”就可以看到运动的勾股树。
具体教程索引自:http://www.jihehuaban.com.cn/shiyongjiqiao/gougu-shu.html。
三、二叉树的遍历操作实现二.实验内容与要求1.建立二叉树二 爱问知
// S_lbecs。
cpp : 定义控制台应用程序的入口点。//链表二叉树的定义和操作#include "stdafx。
h"#include "stdio。h"#include "malloc。
h"#include "string。h"#include "stdlib。
h"#define Max 20 //最大节点个数typedef struct node{ char data; struct node *lchild,*rchild; //左边孩子的指针 和 右边孩子的指针}BinTNode;typedef BinTNode *BinTree; //定义二叉树的指针int NodeNum,leaf; //NodeNum是结点数 leaf是叶子数//基于先序遍历算法创建二叉树//要求输入先序序列,其中加入虚结点“#”以示空指针的位置BinTree CreatBinTree(void){ BinTree T; char ch; scanf("%c",&ch); if(ch=='#') //读入# 返回空指针 return(NULL); else{ T=(BinTNode *)malloc(sizeof(BinTNode)); //生成结点 T->data=ch; T->lchild=CreatBinTree(); //构造左子树 T->rchild=CreatBinTree(); //构造右子树 return(T); }}//DLR 先序遍历//访问根节点 先序遍历左子树 先序遍历右子树void Preorde(BinTree T){ if(T){ printf("%c",T->data); //访问结点 D Preorde(T->lchild); //先序遍历左子树 L Preorde(T->rchild); //先序遍历右子树 R }}//LDR 中序遍历void Inorder(BinTree T){ if(T){ Inorder(T->lchild); //中序遍历左子树 L printf("%c",T->data); //访问结点 D Inorder(T->rchild); //中序遍历右子树 R }}//LRD 后序遍历void Postorder(BinTree T){ if(T){ Postorder(T->lchild); //后序遍历左子树 L Postorder(T->rchild); //后序遍历右子树 R printf("%c",T->data); //访问结点 D }}//采用后序遍历求二叉树的深度、结点数及叶子数的递归算法int TreeDepth(BinTree T){ int hl,hr,max; if(T){ hl=TreeDepth(T->lchild); //求左深度 hr=TreeDepth(T->rchild); //求右深度 max=hl>hr?hl:hr; //取最大深度 NodeNum=NodeNum 1; //求结点数 if(hl==0&&hr==0) //若左右深度都为0 则为叶子 leaf=leaf 1; return(max 1); }else{ return(0); }}//利用“先进先出”(FIFO)队列,按层次遍历二叉树void Levelorder(BinTree T){ int front=0,rear=1; BinTNode *cq[Max],*p; //定义结点的指针数组cq cq[1]=T; //根入队 while(front!=rear){ front=(front 1)%NodeNum; p=cq[front]; //出队 printf("%c",p->data); //输出结点的值 if(p->lchild!=NULL){ rear=(rear 1)%NodeNum; cq[rear]=p->lchild; //左子树入队 } if(p->rchild!=NULL){ rear=(rear 1)%NodeNum; cq[rear]=p->rchild; //右子树入队 } }}int _tmain(int argc, _TCHAR* argv[]){ BinTree root; int i,depth; //最大深度 printf(" 创建二叉树;输入完全二叉树先序序列:"); //用#代表虚结点 如ABD###CE##F## root=CreatBinTree(); //创建二叉树 返回根结点 printf(" 创建成功! "); do{ //从菜单中选择遍历方式,输入序号。 printf(" ********** select ************ "); printf(" 1: 先序遍历 "); printf(" 2: 中序遍历 "); printf(" 3: 后序遍历 "); printf(" 4: 求树的深度及叶子数 "); printf(" 5: 按层次遍历 "); //按层次遍历之前,先选择4,求出该树的结点数。
printf(" 0: 退出 "); printf(" ******************************* 请选择:"); scanf("%d",&i); //输入菜单选项 0-5 switch(i){ case 1: //1: 先序遍历 Preorde printf("先序遍历的结果是"); Preorde(root); // printf(" "); break; case 2: //2: 中序遍历 Inorder printf("中序遍历的结果是"); Inorder(root); // printf(" "); break; case 3: //3: 后序遍历 Postorder printf("后序遍历的结果是"); Postorder(root); // printf(" "); break; case 4: //4: 求树的深度及叶子数 TreeDepth depth=TreeDepth(root); // printf("数的深度=%d 结点数=%d",depth,NodeNum); printf(" 叶子数=%d",leaf); printf(" "); break; case 5: //5: 按层次遍历 Preorde printf("按层次遍历的结果是"); Levelorder(root); // printf(" "); break; default: printf("输入错误 "); break; } }while(i!=0); return 0;}是vs做的 有些地方需要改下 是C语言做的。
徐州小霸王