二叉树的建立及凹入表打印完整优秀版.docx
- 文档编号:27107788
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:29
- 大小:1.51MB
二叉树的建立及凹入表打印完整优秀版.docx
《二叉树的建立及凹入表打印完整优秀版.docx》由会员分享,可在线阅读,更多相关《二叉树的建立及凹入表打印完整优秀版.docx(29页珍藏版)》请在冰豆网上搜索。
二叉树的建立及凹入表打印完整优秀版
先序递归建立二叉树
班级2021211313
姓名:
胡卓学号:
2021211468
姓名:
郭志刚学号:
2021211475
分工情况:
郭志刚BiTreeCreateBiTree(BiTree&T)//先序递归创建二叉树intmain()胡卓voidPrint(BiTree&T,intt)intLEAF(BiTree&T)//计算叶子节点
完成日期:
2021-11-6
问题描述:
1)用先序递归过程建立二叉树(存储结构:
二叉链表)
输入数据按先序遍历所得序列输入,当某结点左子树或右子树为空时,输入‘*’号,如输入abc**d**e**得到的二叉树为:
e
ad
b
c
(选做:
由二叉树的先序序列和中序序列建立一棵二叉树。
)
2)编写递归算法,计算二叉树中叶子结点的数目。
3)按凹入表方式输出该二叉树。
算法思想:
定义二叉树的数据结构类型
typedefstructBiTNode//
{
chardata;
structBiTNode*lchild,*rchild;//左右子树
}BiTNode,*BiTree;
1.先序递归创建二叉树
BiTreeCreateBiTree(BiTree&T)
{
T=(BiTree)malloc(sizeof(BiTNode));
T->data='\0';
charch;
scanf("%c",&ch);
if(ch!
='*')
{
T->data=ch;
T->lchild=CreateBiTree(T->lchild);
T->rchild=CreateBiTree(T->rchild);
}
elseif(ch=='*')
returnNULL;
if((T->lchild==NULL&&T->rchild==NULL)||(T->lchild==NULL&&T->rchild->data!
='\0')||(T->lchild->data!
='\0'&&T->rchild==NULL)||(T->lchild->data!
='\0'&&T->rchild->data!
='\0'))
returnT;
}
2.计算叶子节点
intLEAF(BiTree&T)
{
if(T->lchild==NULL&&T->rchild==NULL)
return1;
elseif(T->lchild==NULL&&T->rchild->data!
='\0')
returnLEAF(T->rchild);
elseif(T->lchild->data!
='\0'&&T->rchild==NULL)
returnLEAF(T->lchild);
else
return(LEAF(T->lchild)+LEAF(T->rchild));
}
3.凹入表打印二叉树
voidPrint(BiTree&T,intt)
{
inti;
if(T)
{
Print(T->rchild,t+5);
for(i=0;i { printf(""); } printf("%5c\n",T->data); Print(T->lchild,t+5); } } 4.主函数 intmain() { BiTreeT; printf("*******************************************\n"); printf("****************欢迎打印二叉树*************\n"); printf("*******************************************\n"); printf("请按先序遍历所得数据输入(当某节点是叶子节点时用'*'表示): \n"); T=CreateBiTree(T); printf("叶子节点的个数是: "); printf("%d\n",LEAF(T)); printf("打印该二叉树结构后的结果为: \n"); Print(T,5); system("pause"); } 设计描述: 源程序: #include #include #include #defineMaxsize100 #defineOVERFLOW-1 #defineERROR0 intpi=0; typedefstructBiTNode//定义二叉树的数据结构类型 { chardata; structBiTNode*lchild,*rchild;//左右子树 }BiTNode,*BiTree; BiTreeCreateBiTree(BiTree&T)//先序递归创建二叉树 { T=(BiTree)malloc(sizeof(BiTNode)); T->data='\0'; charch; scanf("%c",&ch); if(ch! ='*') { T->data=ch; T->lchild=CreateBiTree(T->lchild); T->rchild=CreateBiTree(T->rchild); } elseif(ch=='*') returnNULL; if((T->lchild==NULL&&T->rchild==NULL)||(T->lchild==NULL&&T->rchild->data! ='\0')||(T->lchild->data! ='\0'&&T->rchild==NULL)||(T->lchild->data! ='\0'&&T->rchild->data! ='\0')) returnT; } intLEAF(BiTree&T)//计算叶子节点 { if(T->lchild==NULL&&T->rchild==NULL) return1; elseif(T->lchild==NULL&&T->rchild->data! ='\0') returnLEAF(T->rchild); elseif(T->lchild->data! ='\0'&&T->rchild==NULL) returnLEAF(T->lchild); else return(LEAF(T->lchild)+LEAF(T->rchild)); } voidPrint(BiTree&T,intt) { inti; if(T) { Print(T->rchild,t+5); for(i=0;i { printf(""); } printf("%5c\n",T->data); Print(T->lchild,t+5); } } intmain() { BiTreeT; printf("*******************************************\n"); printf("****************欢迎打印二叉树*************\n"); printf("*******************************************\n"); printf("请按先序遍历所得数据输入(当某节点是叶子节点时用'*'表示): \n"); T=CreateBiTree(T); printf("叶子节点的个数是: "); printf("%d\n",LEAF(T)); printf("打印该二叉树结构后的结果为: \n"); Print(T,5); system("pause"); } 测试结果: 用户使用说明: 请按先序遍历所得数据输入(当某节点是叶子时用‘*’表示): (输入先序遍历序列) 叶子节点的个数是: (显示叶子节点的个数) 打印该二叉树结构后的结果为: (显示二叉树结构直观凹入图) 心得体会: 通过对二叉树的学习与同学之间的交流,我对二叉树及其递归建立和遍历有了更加深入的了解,感觉学到了很多东西,感受到了学习的乐趣。 福州外语外贸财经系话剧团建立策划方案 一、剧团成立宗旨: 以“培养大学生兴趣爱好,激发学生创新意识,营造校园文娱活动气氛,提高大学生综合素质”为宗旨;本着团结进取,求实创新,与时俱进的精神,努力提高同学们的综合素质,逐步扩大规模和影响,让同学们在这里学到知识,扩展视野;通过学习和交流,提高同学们的文化素养,丰富知识底蕴,达到共同进步的目的;立足于校内,走向校外,共同营造一个大学生的第二课堂。 二、剧团主要部门设置: 剧务部、宣传部、策划部、舞台处、表演部、外联部、道具组 三、社团的基本活动内容及方式: 1.话剧团以话剧表演为主体,向外辐射哑剧、小品、相声、双簧等各类表演形式。 由于时间和排练场地等硬件因素问题,可能一年一出大型话剧演出,更多会以小品和短剧出品。 2.定期对社员进行话剧创造和表演技巧的培训. 3.定期集体排练各种适合学生表演的话剧和情景剧等。 4.在学校有任何活动,比较晚会,需要节目的时候可以随时提供。 四、部门及人员要求: 1.团长、副团长各1名。 要求: 热爱话剧事业,有团队精神,诚实守信。 有较强的领导能力、组织策划能力、具有亲和力,口才出众、普通话标准、熟悉话剧的制作表演等方面及操作流程。 并且具有较好的外事能力。 2.策划部部长、副部长各1名,组员2名。 要求: 熟悉一定的中外文学剧作,有较好的文学功底及创作能力和文字编写能力,有独当一面的办事能力和认真的工作精神. 3.剧务部部长、副部长各1名,组员2名。 要求: 要求: 有团队合作精神,诚实守信,有较强的领导能力、组织策划能力,口才出众,有一定外事活动能力和亲和力。 4.宣传部部长、副部长各1名,组员2名。 要求: 有较高的美术功底和文字编写能力,技高一筹的亲和力及吃苦耐劳的精神。 5.舞台处处长、副处长各1名,组员2名。 要求: 具有一定的审美能力,看待事物敏感多元,想象力丰富。 音乐鉴赏能力较强,美术功底好,善于手工制作,有吃苦耐劳的精神. 6.表演部部长、副部长各1名. 要求: 形象好,气质佳,有舞台释放能力和舞台渲染力,普通话标准,记忆力好。 善于通过肢体语言来丰富表达自己的思想。 具有吃苦耐劳的精神和克服困难的毅力。 (学过乐器、舞蹈表演者优先考虑) 7.外联部部长、副部长各1名,组员不限,以能力为主。 要求: 具有一定的市场营销能力和交流能力,负责对外拉拢赞助。 具有吃苦耐劳的精神和克服困难的毅力. 8.道具组组长,副组长各一名,组员不限。 要求: 负责筹备和制作道具,舞台道具安置,组员要求手工制作能力强。 五、各部门职能: 1、团长 负责剧社的整体工作协同和外事工作,同时参加每次剧社活动,对剧社工作起到指导作用。 2、副团长 负责每次召开的常务例会,包括每学期公演的剧目,剧种,及人员的恰当安排,以及剧团细节工作的管理.同时参加剧社的常务活动。 3、策划部 (1)负责剧本选择。 包括传统话剧,情景剧,歌剧,小品,课本剧,自编剧等多种形式的剧目选择。 (2)剧本审议 注: 团长、副团长、四部部长及副部长共同参与上演剧目的审核。 (剧务、策划、表演、舞台) (3)剧本制作 动员广大师生,征集优秀剧本。 并与剧务部一起对剧本进行修改和审议,加工、打印,负责把成品交给团长和表演部部长。 4、宣传部 (1)演出宣传 每逢学期演出或者常规演出时,在演出前一个月内开始宣传,方式要求多样。 包括广播宣传,海报宣传,班级宣传等。 (2)纳新宣传 每逢话剧社人员扩大或需要招新时,应本着尽力让每一个有用的,可用的,符合话剧社条件的同学和老师参与到剧社的创作表演团队中来,以此丰富大家的课余生活和繁荣学校文化。 5、舞台部 负责舞台布置。 根据上演剧目的要求和场地的实际情况,最大化的实现剧情要求的场所的再现。 在灯光的挑选,音乐的选择及道具购买和制作时,应本着负责的态度和认真的精神进行规划. 6、表演部 (1)演员的选派 根据剧本的要求选择不同的演员担当不同的角色.主角配角的安排,选派应根据每位演员的实际情况和表演能力决定。 注: 选派人员需表演部部长和社长及副社长集体共同商量决定。 (2)剧目的排练 拟定排练制度,确定排练时间.做好各项常规训练以及各级各类单项练习。 要求: 有团队合作精神,诚实守信 口才出众,有一定外事活动能力和亲和 7、剧务部 有较强的领导能力、组织策划能力,口才出众,有一定外事活动能力和亲和力,负责与策划部一起对剧本进行修改和审议,所需经费的统计。 排练的组织,后期筹备的一切事宜。 六、活动金费与赞助: 话剧演出的所需经费,需要剧务部统计,外联部外出拉取赞助。 七、活动特别企划: 主持人: 很多使用ToolBox的朋友都希望图中所有用到的标准件(如螺钉螺母)的规格大小以及国标号能够自动出现在装配图的明细表中,特别是能自动产生数量规格等相关数据。 否则人工统计是件非常烦琐的工作。 SolidWorks早已提供了这个功能,不过因为这个是老外的软件,对中华地区的技术支持力度不强,没有提供现成的模板,而GB标准件也只是从2007版才开始加入,并且是英文名称.... 那么我们怎么解决这个问题呢? 答案: 自己动手。 可以自己定义模板,修改库文件来实现全自动、全中文的明细表梦想。 (本教程面向新手,所以会讲的详细一点,同时也请高手指教) 首先,需要明白这样一个概念: 工程图中的“属性变量”。 啥叫“属性变量”呢? 我们来看当你在工程图中插入文字和注释的时候,有一个图标是“链接到属性”,就是下图中红圈的那个: 我们选择这个“链接到属性”,就会出现下面这个对话框: (注意,一般来讲,我们在工程图中所使用的属性都应该来自图中的模型,既.sldprt或.sldasm中定义的内容,所以应该选择“图纸属性中所指定视图中模型”这一项。 只有少数某些属性需要用“当前文件”中的定义,如此工程图“最后保存的时间”) 点开它,选择“材料”: 这样就插入了一个“属性变量”的文本,如下图: 而这个变量是跟随工程图中所引入的模型的属性变化的。 现在我们来建立一个3D模型,选定他的材料为黄铜: 然后将这个模型插入到工程图中: 看吧,那个“属性变量”的文本就变成了“黄铜”。 看到这里,可能有朋友会马上尝试,可是,怎么没有那个“材料”的属性呢? 这个前面说过,没有现成的模板给你,需要自己定义零件和装配体的模板。 下一篇继续讲解。 上一篇里已经有示例,如何将3D模型中所定义的“材料”引入工程图中。 可以说,“属性变量”就是SolidWorks中3D模型与工程图之间的一个“纽带”,使得工程图中不仅是各视图与原模型关联,各种文字及表格也是与原模型相关联的。 而这也是目前的3D软件的终极目标: 所有的设计信息及技术表达全部包含在一个3D图中,而2D的工程图仅仅是辅助,甚至可以不要,仅在需要纸质图纸交流的时候方便、自动的生成。 也许,老外们对未来的设想是这样的: 电脑将无处不在,数字信息的交流可以替代传统的方式。 那么,处于技术前沿的工程师们就更应提早去应用。 在目前的版本中,SolidWorks自身模板中的属性变量并不一定是我们需要的,所以要自己定义一些属性变量。 那么这些都在哪里操作呢? 看下图: 选择后会出现这个: “属性名称”就是我们所说的属性变量。 在SolidWorks中,不论零件、装配、还是工程图都具有各自的属性名称,可以在模板中定义好自己常用的内容,然后工程图中与零件对应,就可以实现标题栏的自动填写。 举例如下: 我们在3D零件的模板中定义如下内容 在工程图的模板中做好标题栏 然后填写文本,当然,这里的所有文本都是“属性变量”(详细内容见上篇),定义好的模板其实是这个样子: 最后,当我们使用这个模板,插入3D零件体的时候,所有要填写的内容就会变成我们在3D零件中所定义的内容: 这就是3D模型与2D工程图通过“属性变量”而关联的过程。 下一篇具体讲解装配图中零件明细表的生成以及ToolBox标准件的引入及修改。 前面用了2篇才说完实现自动明细表的基础内容。 这一篇就正式来说明装配图中如何插入明细表了。 一个装配(*.sldasm)中包含这个装配的所有零件和相关装配关系,每个零件在设计的时候按照前两篇内容中介绍的方法所定义的“属性变量”随着这个零件插入装配体的同时也会引入装配中。 当使用这个装配生成工程图后,这些数据同样跟随进入工程图。 比如其中的这个零件具有如下定义: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 那么当在这个零件所在的装配的工程图中插入“材料明细表”时: 就会出现如下表格内容: 由于默认的SolidWorks“材料明细表”表格模板之包含项目号、零件号、数量等条列,因此所需要的条列可以自己添加,如下图: (选择某一格,然后在“属性”中选择“列属性”,就会出现可添加的项目。 如果新增表格列,也会出现这一内容) 将第一次作好的表格保存为“材料明细表”模板,代替原来的*.sldbomtbt文件就可以实现一役永劳,以后只要插入“材料明细表”,所有定义过的变量条列都会出现,不用再做添加。 那么,当装配中还插入了ToolBox标准件,这些标准件在“材料明细表”中所显示的都是英文该咋办呢? 下一篇继续讲解! 评论这张 这一篇来讲解在装配图中插入的ToolBox标准件的规格如何以中文方式插入工程图。 安装好SolidWorks2007,并在安装时包含ToolBox插件后,默认情况下会出现C: \Program Files\Common Files\Solidworks Data\这个文件夹(此文件夹可以在安装时设定变更)。 ToolBox的相关数据就在这里了。 其中Browser文件夹下是标准件的3D模型,CopiedParts文件夹下存放使用过程中单独生成配制的零件,PartLibs文件夹存放自定义标准件。 在Lang文件夹下是各语言版本的ToolBox配制表,为Microsoft Office Access数据库格式。 在这些Lang里面,chinese-simplified里的内容是空的,这是因为2007版本的ToolBox并没有完成中文化。 中文版的SolidWorks2007其实使用的是English的配制表,也因此ToolBox中GB标准件会在工程图中全部显示为英文名称。 有朋友可能会问: 那为什么设计库的列表中会显示中文名称? 如下图: 这是因为设计库的列表中所显示的名称并不是Solidworks Data中的。 这个列表的定义在 C: \Program Files\SolidWorks\Toolbox\lang\Chinese-Simplified中。 为何会这样呢? ToolBox是作为SolidWorks的一个辅助插件销售的,购买了这个插件才会有C: \Program Files\Common Files\Solidworks Data\下的内容。 而标准版的SolidWorks是包含一个ToolBox基本数据的,用于支持孔向导的使用。 我等中文用户只能通过修改C: \Program Files\Common Files\Solidworks Data\lang\English下的SWBrowser.mdb来实现ToolBox的全中文化。 (这软件是老外的啊,谁叫咱老是用盗版,使得老外们对咱不重视) 使用Microsoft Office Access打开这个SWBrowser.mdb,天啦! nnnn个条目,哪个是需要修改的啊? ! 如果将所有的内容都汉化,工作量非常大。 本人建议用到哪个就修改下哪个,经过工作中不断积累,最终会越来越完善。 (重装系统时可要记得备份ToolBox哦,否则.........) 我们以开口垫圈为例来说明: 需要修改开口垫圈,首先将这个东西拖入装配,会出现以下内容: 注意这里的配制名称: GB_SPECIAL_WASHERS_TYPE5,这个就是我们要寻找的条目了。 在Access中的条目是以字母顺序排列的,GB开头的全部是GB标准件的内容;其中,GB_CFG开头的是配制信息,GB_DATA开头的是具体规格的数据。 这里我们找到这个: GB_CFG_Special_washers_TYPE5,如下图: 打开这个条目: 将999条目的数值改成: {开口垫圈 其它项目可以根据自己的需要来修改。 注意: 索引号小于900的所有内容均不可修改,这些都是非注释内容,与GB_DATA中的数据具有对应关系,修改其会导致ToolBox出错不可使用。 修改后的内容插入装配工程图,就会在明细表所对应的项目中出现。 另外还有些自己所需要加入的项目除了以此方法修改外还可以通过前面介绍过的“属性变量”来实现。 PS: 模具论坛的“piaoyao-sw”有介绍如何通过ToolBox的“配置”功能添加备注条目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二叉 建立 凹入表 打印 完整 优秀