实验六--树
- 格式:doc
- 大小:107.50 KB
- 文档页数:16
实验六针叶树材微观构造
一、实验目的
掌握针叶树材轴向管胞、树脂道、木射线及轴向薄壁组织细胞在木材三个切面上的形态
与结构特征;在径切面上交叉场纹孔的类型与形态特征。
二、实验仪器、设备
生物显微镜
三、实验材料
实验室木材切片标本。
如
马尾松Pinus massoniana、湿地松Pinus elliotti i、银杉Cathaya argyrophylla、油杉Keteleeria fortunei、杉木Cunninghamia Ianceolata、银杏Ginkgo beloba 等等°
四、实验报告要求
1、将木材切片标本上描述到的显微构造特征填入表1
2、绘出3种木材的三切面显微构造图,并分别用木材学术语描述它们的显微特征。
注:注明放大倍数并标注所绘特征°
表1针叶树材显微构造特征记载表。
实验六茎的结构一、目的与要求(一)掌握茎尖的结构、分区及各区细胞特点(二)掌握植物茎的初生结构、次生结构二、材料与用具新鲜材料:多年木本植物的枝条(如杨树),大豆或向日葵幼茎;永久制片:植物的芽纵切片,玉米或丁香、小叶黄杨茎纵切,向日葵幼茎横切,小麦、玉米茎横切,向日葵老茎横切,多年生椴树茎横切,松茎三切面。
用具:显微镜、放大镜、解剖镜、载玻片、盖玻片、双面刀片、毛笔、培养皿、滤纸、钌红水溶液。
三、内容与方法(一)芽的结构取杨树、苹果等不同植物的芽,用肉眼观察分辨鳞芽与裸芽。
通过纵剖在放大镜或解剖镜下观察辨认叶芽、花芽和混合芽。
取一个剖开的枝芽(叶芽),在解剖镜下观察,辨认芽轴顶端的生长锥、芽轴、叶原基和幼叶,还有幼叶基部的腋芽原基,有些芽在最外面还有芽鳞(图6-1)。
图6-1 枝芽纵切1.生长锥2.叶原基3.腋芽原基4.幼叶温带地区的木本植物,越冬枝条上的芽多有芽鳞保护,为鳞芽。
一般草本植物多为裸芽,即芽外没有芽鳞的包被。
(二)茎尖的结构取玉米或丁香、黑藻茎尖的纵切制片观察,区分原分生组织(原套、原体)、初生分生组织(原表皮、基本分生组织、原形成层)和叶原基、腋芽原基等,比较各部分细胞的形态结构特点以及在茎尖中的位置(图6-2)。
图6-2 茎尖,示原套-原体1.原套2.原体(三)茎的初生结构1.双子叶植物⑴取大豆(或向日葵)的幼茎作徒手切片,制成水装片,在显微镜下区分表皮、皮层和维管柱三部分。
维管束呈束状,环状排列为一圈,束间有髓射线,中央为髓。
注意观察厚角组织壁的加厚、叶绿体的分布。
用钌红水溶液滴染于上述新鲜材料上,观察能否将细胞的胞间层染成红色或浅红色,而使皮层部分细胞的角隅加厚情况显现出来?取另一新鲜的切片,滴加I2-KI溶液,观察皮层内是否有被染成蓝色的淀粉粒?⑵观察大豆幼茎横切的永久制片,在显微镜下对照徒手切片,详细观察下列结构。
①表皮:表皮细胞一层,排列紧密,外壁具有角质层。
有些表皮细胞形成表皮毛。
实验六系统发育分析-PhylipPHYLIP网址: /phylip.html实习内容:(一)序列的前期准备(二)最大简约法建树(Maximum Parsimony)(三)最大似然法建树(Maximum Likelihood )(四)距离法建树(Distance Method)作业:任意选取五个以上物种的同源核酸或/和蛋白质序列,分别采用最大简约法,最大似然法和距离法构建进化树,给出简洁的步骤和必要的图示,并分析这三种方法的差别。
答:五种核酸序列:>Rattus norvegicus gi|17985948|ref|NM_033234.1| Rattus norvegicus hemoglobin, beta (Hbb), mRNA>Mus musculus gi|218749876|ref|NM_008220.4| Mus musculus hemoglobin, beta adult major chain (Hbb-b1), mRNA>Bos taurus gi|160358323|ref|NM_173917.2| Bos taurus hemoglobin, beta (HBB), mRNA>Homo sapiens gi|28302128|ref|NM_000518.4| Homo sapiens hemoglobin, beta (HBB), mRNA>Sus scrofa gi|261245057|ref|NM_001144841.1| Sus scrofa hemoglobin, beta (HBB), mRNAseqboot运行后输出文件内容及用CLUSTALX进行多条序列比对构建的进化树最大简约法建树步骤:1、打开DNAPARS,将刚才生成的seqb文件名输入。
2、改M选项为分析multiple data sets(多个数据),其它参数不变,运行将生成两个文件outfile和outtree,将outfile更名为mpfile,将outtree更名为mptree。
实验四二叉树的操作题目:对于给定的一二叉树,实现各种约定的遍历。
一、实验目的:(1)掌握二叉树的定义和存储表示,学会建立一棵特定二叉树的方法;(2)掌握二叉树的遍历算法(先序、中序、后序遍历算法)的思想,并学会遍历算法的递归实现和非递归实现。
二、实验内容:构造二叉树,再实现二叉树的先序、中序、后序遍历,最后统计二叉树的深度。
三、实验步骤:(一) 需求分析1. 二叉树的建立首先要建立一个二叉链表的结构体,包含根节点和左右子树。
因为树的每一个左右子树又是一颗二叉树,所以用递归的方法来建立其左右子树。
二叉树的遍历是一种把二叉树的每一个节点访问并输出的过程,遍历时根结点与左右孩子的输出顺序构成了不同的遍历方法,这个过程需要按照不同的遍历的方法,先输出根结点还是先输出左右孩子,可以用选择语句来实现。
2.程序的执行命令为:1)构造结点类型,然后创建二叉树。
2)根据提示,从键盘输入各个结点。
3)通过选择一种方式(先序、中序或者后序)遍历。
4)输出结果,结束。
(二)概要设计1.二叉树的二叉链表结点存储类型定义typedef struct Node{DataType data;struct Node *LChild;struct Node *RChild;}BitNode,*BitTree;2.建立如下图所示二叉树:void CreatBiTree(BitTree *bt)用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点。
3.本程序包含四个模块1) 主程序模块:2)先序遍历模块3)中序遍历模块4)后序遍历模块4.(三)详细设计1.建立二叉树存储类型//==========构造二叉树=======void CreatBiTree(BitTree *bt)//用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点//{char ch;ch=getchar();if(ch=='.')*bt=NULL;else{*bt=(BitTree)malloc(sizeof(BitNode));//申请一段关于该节点类型的存储空间(*bt)->data=ch; //生成根结点CreatBiTree(&((*bt)->LChild)); //构造左子树CreatBiTree(&((*bt)->RChild)); //构造右子树}}2.编程实现以上二叉树的前序、中序和后序遍历操作,输出遍历序列1)先序遍历二叉树的递归算法如下:void PreOrder(BitTree root){if (root!=NULL){Visit(root ->data);PreOrder(root ->LChild); //递归调用核心PreOrder(root ->RChild);}}2)中序遍历二叉树的递归算法如下:void InOrder(BitTree root){if (root!=NULL){InOrder(root ->LChild);Visit(root ->data);InOrder(root ->RChild);}}3)后序遍历二叉树的递归算法如下:void PostOrder(BitTree root){if(root!=NULL){PostOrder(root ->LChild);PostOrder(root ->RChild);Visit(root ->data);}}4)计算二叉树的深度算法如下:int PostTreeDepth(BitTree bt) //求二叉树的深度{int hl,hr,max;if(bt!=NULL){hl=PostTreeDepth(bt->LChild); //求左子树的深度hr=PostTreeDepth(bt->RChild); //求右子树的深度max=hl>hr?hl:hr; //得到左、右子树深度较大者return(max+1); //返回树的深度}else return(0); //如果是空树,则返回0}四、调试分析及测试结果1. 进入演示程序后的显示主界面:请输入二叉树中的元素;先序、中序和后序遍历分别输出结果。
评语: 课中检查完成的题号及题数:课后完成的题号与题数:成绩: 指导教师:实验报告实验名称:五构造进程家族树六理解进程的独立空间日期:2011.5.16一、实验目的1.构造进程家族树通过创建若干个子进程,构造进程家族树,分析进程家族树的结构关系;学习相关系统调用(例如,getpid()和getppid()等)的使用方法。
2. 理解进程的独立空间理解进程是操作系统独立分配资源的单位,进程拥有自己相对独立的程序空间。
二、实验内容1. 构造进程家族树学习进程构造的相关知识,学习获取进程相关信息的系统调用函数。
2. 理解进程的独立空间预习进程创建和构造的相关知识,了解C语言程序编写的相关知识。
三、项目要求及分析1. 构造进程家族树进程的创建。
编制一段程序,使用系统调用fork()创建三个子进程,在各个子进程中再使用系统调用fork()进一步创建子进程,如此重复,构造一棵具有图1形状的进程家族树。
分别使用系统调用getpid()和getppid()获取当前进程和父进程的进程标识号并输出。
2. 理解进程的独立空间a. 编写一个程序,在其main ()函数中定义一个变量shared ,对其进行循环加/减操作,并输出每次操作后的结果;b. 使用系统调用fork ()创建子进程,观察该变量的变化;c. 修改程序把shared 变量定义到main ()函数之外,重复第(2)步操作,观察该变量的变化。
四、具体实现1. 流程图a. 构造进程家族树ParentPid2 Pid1Pid3Pid12Pid11b. 理解进程的独立空间2. 添加函数的代码 结束开始调用父进程,执行shared输出shared 值调用子进程,执行shared输出shared 值>0 =0 =0=0 >0=0 打印 创建子进程Pid11 Pid11=0? 创建子进程Pid12 打印 Pid11=0?开始创建子进程Pid1Pid1=0?创建子进程Pid2Pid2=0?创建子进程Pid3 Pid3=0?结束 >0>0=0a.构造进程家族树b.理解进程的独立空间五、调试运行结果1.实验5:2.实验6:六、所遇问题及解决方法在构造家族树的时候考虑pid不全面,编程的时候因为对进程理解不到位而产生生成多个父进程。
实验六:二叉树及其应用一、实验目的树是数据结构中应用极为广泛的非线性结构,本单元的实验达到熟悉二叉树的存储结构的特性,以及如何应用树结构解决具体问题。
二、问题描述首先,掌握二叉树的各种存储结构和熟悉对二叉树的基本操作。
其次,以二叉树表示算术表达式的基础上,设计一个十进制的四则运算的计算器。
如算术表达式:a+b*(c-d)-e/f三、实验要求如果利用完全二叉树的性质和二叉链表结构建立一棵二叉树,分别计算统计叶子结点的个数。
求二叉树的深度。
十进制的四则运算的计算器可以接收用户来自键盘的输入。
由输入的表达式字符串动态生成算术表达式所对应的二叉树。
自动完成求值运算和输出结果。
四、实验环境PC微机DOS操作系统或Windows 操作系统Turbo C 程序集成环境或Visual C++ 程序集成环境五、实验步骤1、根据二叉树的各种存储结构建立二叉树;2、设计求叶子结点个数算法和树的深度算法;3、根据表达式建立相应的二叉树,生成表达式树的模块;4、根据表达式树,求出表达式值,生成求值模块;5、程序运行效果,测试数据分析算法。
六、测试数据1、输入数据:2.2*(3.1+1.20)-7.5/3正确结果:6.962、输入数据:(1+2)*3+(5+6*7);正确输出:56七、表达式求值由于表达式求值算法较为复杂,所以单独列出来加以分析:1、主要思路:由于操作数是任意的实数,所以必须将原始的中缀表达式中的操作数、操作符以及括号分解出来,并以字符串的形式保存;然后再将其转换为后缀表达式的顺序,后缀表达式可以很容易地利用堆栈计算出表达式的值。
例如有如下的中缀表达式:a+b-c转换成后缀表达式为:ab+c-然后分别按从左到右放入栈中,如果碰到操作符就从栈中弹出两个操作数进行运算,最后再将运算结果放入栈中,依次进行直到表达式结束。
如上述的后缀表达式先将a 和b 放入栈中,然后碰到操作符“+”,则从栈中弹出a 和b 进行a+b 的运算,并将其结果d(假设为d)放入栈中,然后再将c 放入栈中,最后是操作符“-”,所以再弹出d和c 进行d-c 运算,并将其结果再次放入栈中,此时表达式结束,则栈中的元素值就是该表达式最后的运算结果。
实验六树
一.
1、参考工程shiyan6_1,请将其完善以实现树的基本运算。
若有一二叉树的括号表示为:A(B(D,E(H(J,K(L,M(,N))),)),C(F,G(,I)))。
设计一个主程序实现如下功能,
(1)用二叉链表创建这棵二叉树T。
(2)输出二叉树T。
(3)分别输出二叉树T的先序、中序和后序遍历的序列。
(4)输出‘H’结点的左、右孩子结点值。
(5)输出二叉树T的深度。
(6)输出二叉树T的宽度。
(7)输出二叉树T的结点个数。
(8)输出二叉树T的叶子结点个数。
return (num1+num2+1);
}
}
3【运行截图】
二.
1 、编写工程shiyan6_2,实现构造一棵哈夫曼树,输出对应的哈夫曼编码和译码的算法。
并对下表的数据进行验证。
2【运行代码】
【运行结果截图】
三【个人总结】
每次编程的时候都是一种煎熬,编的时候写代码改错。
调试,尤其在调试的时候,会让你原本很好的心情一下子会变得很糟很糟,一次一次的调一次一次的不给运行,真的有想把电脑砸了的冲动,但我还是静下心来一次一次的调试一次一次的改错,忍着既然选择了这条路就应该坚持下去,再苦再累也要坚持,不抛弃不放弃只要坚持总有一天会成功的,在一次一
次的调试几乎绝望的时候当突然看到看个黑色屏幕时心情,一下子就豁然了,一切一切的付出都值得,编完收拾东西吃出好好的奖励自己一下,好好的吃一顿,付出的一切都值得,只要坚持,不抛弃不放弃就一定能成功。
胜利属于坚持的人!!!!!!!!!!!。