




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业基础综合课程设计设计说明书线索二叉树的实现学生姓名xxx学号班级成绩指导教师数学与计算机科学学院2012 年 6月 29日专业基础综合课程设计评阅书题 目线索二叉树的实现学生姓名学号指导教师评语及成绩成绩: 教师签名: 年 月 日答辩教师评语及成绩成绩: 教师签名: 年 月 日教研室意见总成绩: 室主任签名: 年 月 日注:指导教师成绩60%,答辩成绩40%,总成绩合成后按五级制记入。课程设计任务书20112012学年第2学期专业:计算机应用技术 学号: 姓名: 课程设计名称: 专业基础综合课程设计 设 计 题 目: 线索二叉树的实现 完 成 期 限:自 2012 年 6 月 18 日至 2012 年 6月 29 日共 2 周设计内容:n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为线索)。这种加上了线索的二叉树称为线索二叉树(threadedbinarytree)。对一棵非线索二叉树以某种次序遍历使其变为一棵线索二叉树的过程称为二叉树的线索化。由于线索化的实质是将二叉链表中的空指针改为指向结点前驱或后继的线索,而一个结点的前驱或后继结点的信息只有在遍历时才能得到,因此线索化的过程即为在遍历过程中修改空指针的过程。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。运用vc+编写一个程序实现前序线索二叉树、中序线索二叉树和后序线索二叉树,其中遍历要求用先左后右的递归或非递归算法来实现。要求:1) 阐述设计思想,画出流程图;2) 任意建立一棵二叉树,采用前序、中序、后序三种方法线索化二叉树;3) 说明测试方法,写出完整的运行结果;4) 从时间、空间对算法分析;5) 较好的界面设计;6) 编写课程设计报告。 以上要求中第一个阶段的任务完成后,先将设计说明书的草稿交指导老师面审,审查合格后方可进入后续阶段的工作。设计工作结束后,经指导老师验收合格后将设计说明书打印装订,并进行答辩。指导教师(签字): 教研室主任(签字): 批准日期: 2012年 6 月 18 日摘 要本次课程设计以二叉树为基础,重点讨论二叉树的存储表示以及如何建立一任意二叉树,阐述如何对二叉树进行线索化及利用线索进行对二叉树遍历的过程,并按中序遍历和先序遍历的顺序线索化以上二叉树,实现在一已经中序线索化后的二叉树上插入和删除结点,并保证索引不破坏。关键词:线索化;二叉树;先序;中序;后序,遍历 目 录1课题描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 4详细设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45程序编码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96程序调试与结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157算法分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 11 课题描述 本次试验通过对二叉树进行线索化后三种遍历的实现,三种遍历的过程必须找到序列中的第一个结点,然后依次找出结点后继直至其后继为空时为结束。 构建二叉树的过程中,通过先序构建,在构建初,对于线索的初值都赋值0,然后进行线索化的过程分别应用了三种对应的先、中、后的线索,然后在其三种的线索的基础上进行三种遍历,进而完成二叉树线索遍历的实现。输出三种遍历后的不同结果,从而完成本次试验。2需求分析 必须确定本次实验的目的,即完成二叉树的线索化、完成二叉树的一般操作。完成本次实验,必须确定该树的存储对象,即值域、左子树、右子树、还有控制线索的rtag、ltag。在线索化的实现过程中,要进行三个部分:首先,保证该树已经存在,必须在树存在的基础上进行线索化。再次,确定线索化需要三种不同的线索化,先序、中序、后序线索化。最后,完成三种不同的遍历先序、中序、后序遍历,输出二叉树。3 概要设计这是一个能对二叉树线索化的程序,其中包括对二叉树的先序、中序、后序线索化,最后遍历线索化并输出遍历结果。其中线索化要实现对同一个树的线索化,即应具备还原线索化后二叉树的程序,并重新对二叉树线索化。主要的功能模块流程图如图3.1所示。主函数建立二叉树先序线索化中序线索化后序线索化先序线索化遍历中序线索化遍历后序线索化遍历 图 3.1 模块流程图4 详细设计线索二叉树的主要函数设置如下:树的存储的类型为:typedef struct bithrnodechar data;struct bithrnode *lchild,*rchild; int ltag,rtag;bithrnode,*bithrtree;主程序:bithrtree t, p,t1;int k;doswitch(k) case 1: creat(t); -建立二叉树t1=copy(t); -复制建立后的二叉树case 2: t=copy(t1); -复制建立后的二叉树preorderthreading(p,t); -先序线索化first(p); -先序遍历case 3: t=copy(t1); -复制建立后的二叉树inorderthreading(p,t); -中序线索化mid(p); -中序遍历case 4: t=copy(t1); -复制建立后的二叉树backorderthreading(p,t); -后序线索化last(p); -后序遍历while(k!=0);子程序:bithrtree creat(bithrtree &t) -建立二叉树status preorderthreading(bithrtree &thrt,bithrtree t) -先序线索化void prethreading(bithrtree p) -先序线索化子函数status inorderthreading(bithrtree &thrt,bithrtree t) -中序线索化void inthreading(bithrtree &p) -中序线索化子函数status backorderthreading(bithrtree &thrt,bithrtree t) -后序线索化void backthreading(bithrtree p) -后序线索化子函数void first(bithrtree thrt) -先序遍历void mid(bithrtree thrt) -中序遍历void last(bithrtree t) -后序遍历bithrtree copy(bithrtree &r) -复制建立后的二叉树bithrtree creat(bithrtree &t) (1) 创建二叉树( createbitree(t)) 设计思想:在用户需要创建二叉树时,屏幕提醒输入树的各个结点,包括空结点的输入,完成输入后,程序自动依次读入各个结点,以空结点作为判断结点位置的主要依据。设计流程如图4.1所示。图4.1 createbitree(t ) 创建二叉树 (2) 先序线索化二叉树 设计思想:由于线索化的实质是将二叉链表中的空指针改为指向遍历时得到的前驱或后继的线索,因此线索化的过程即为在遍历过程中修改空指针的过程,附设一个指针pre始终指向刚刚访问过的结点,若指针p指向当前结点,则pre指向他的前驱。由此可得先序遍历建立先序线索化的设计流程如图4.2所示。图4.2先序线索化 preorderthreading(bithrtree &thrt,bithrtree t)(3)中序线索化设计流程如图4.3所示图4.3中序线索化 status inorderthreading(bithrtree &thrt,bithrtree t) (4)后序线索化设计流程如图4.4所示图4.4后序线索化 status backorderthreading(bithrtree &thrt,bithrtree t)5 程序编码#include#include #include#include#define overflow -2#define ok 1#define error 0typedef int status;typedef enum pointertag link=0,thread=1 ; /link=0; 指针 thread=1;线索typedef struct bithrnode char data;struct bithrnode *lchild,*rchild; /左右孩子指针int ltag,rtag;bithrnode,*bithrtree;bithrtree pre; bithrtree creat(bithrtree &t) /构造二叉树 char ch;fflush(stdin); scanf(%c,&ch);if(ch= |ch=#)t=null;else if(!(t=(bithrnode *)malloc(sizeof(bithrnode)return error; t-data=ch;t-ltag=0;t-rtag=0;printf(输入父结点%c的左孩子:,ch); t-lchild=creat(t-lchild);printf(输入父结点%c的右孩子:,ch);t-rchild=creat(t-rchild);return t; void prethreading(bithrtree p) /先序线索化 if(p)if(!p-lchild) p-ltag = thread;p-lchild = pre; /前驱线索if(!pre-rchild) pre-rtag = thread;pre-rchild = p; /后继线索pre = p; if(p-ltag=link)prethreading(p-lchild); /左子树线索化if(p-rtag =link)prethreading(p-rchild); /右子树线索化 status preorderthreading(bithrtree &thrt,bithrtree t) /先序线索二叉树 if(!(thrt=(bithrtree)malloc(sizeof(bithrnode) return error;thrt-ltag=link;thrt-rtag=thread; /建头结点thrt-rchild=thrt; /右指针回指if(!t)thrt-lchild=thrt; /空二叉树else thrt-lchild=t;pre=thrt; prethreading(t); /先序遍历进行先序线索化pre-rchild=thrt;pre-rtag=thread; /最后一个结点线索化thrt-rchild=pre;return ok; void inthreading(bithrtree &p) /中序线索化 if (p) inthreading(p-lchild); /左子树线索化 if (!p-lchild) p-lchild=pre; p-ltag=thread; if (!pre-rchild) pre-rchild=p; pre-rtag=thread; pre = p; inthreading(p-rchild); /右子树线索化 status inorderthreading(bithrtree &thrt,bithrtree t) /中序线索化二叉树if(!(thrt=(bithrtree)malloc(sizeof(bithrnode)exit(overflow);thrt-ltag=link;thrt-rtag=thread; /建头结点thrt-rchild=thrt; /右指针回指if(!t)thrt-lchild=thrt; /若二叉树为空,则左指针回指else thrt-lchild=t;pre=thrt;inthreading(t); /中序遍历进行中序线索化pre-rchild=thrt;pre-rtag=thread; /最后一个结点线索化thrt-rchild=pre;return ok;void backthreading(bithrtree p) /后序线索化 if(p) backthreading(p-lchild); backthreading(p-rchild); if(!p-lchild) p-ltag=thread; p-lchild=pre; /前驱线索 if(!pre-rchild) pre-rtag=thread; pre-rchild=p; /后继线索 pre=p; status backorderthreading(bithrtree &thrt,bithrtree t) /后序线索化二叉树 if(!(thrt = (bithrtree)malloc(sizeof(bithrnode)exit(overflow);thrt-ltag=link;thrt-rtag=thread; /建头结点thrt-rchild=thrt; if(!t)thrt-lchild=thrt; /若二叉树为空,则左指针回指else thrt-lchild=t;pre=thrt;backthreading(t); /中序遍历进行中序线索化pre-rchild=thrt; pre-rtag=thread; /最后一个结点线索化thrt-rchild=pre;return ok;void first(bithrtree thrt) /先序遍历二叉树 bithrtree p;printf(先序遍历结果为: );p=thrt-lchild; while(p!=thrt)printf(%c ,p-data); while(p-ltag = link)p=p-lchild;printf(%c ,p-data); while(p-rtag=thread)&(p-rchild!=thrt) p = p-rchild; printf(%c ,p-data); p = p-rchild;printf(n);void mid(bithrtree thrt) /中序遍历二叉树 bithrtree p;printf(中序遍历结果为: ); p=thrt-lchild; while(p!=thrt) while(p-ltag = link)p=p-lchild; printf(%c ,p-data); while(p-rtag=thread)&(p-rchild!=thrt) p = p-rchild; printf(%c ,p-data); p = p-rchild;printf(n);bithrtree parents(bithrtree &thrt,bithrtree &p) bithrtree t; t=thrt;if(t-lchild=p)return t; /父节点是头结点 else t=t-lchild; while( t-lchild!=p & t-rchild!=p ) if(link=t-rtag)t=t-rchild; /结点有右结点,往右 else t=t-lchild; /如果结点没有右孩子,去左孩子,没有左孩子,去前驱 return t; void last(bithrtree t) /后序遍历二叉树 bithrtree p,q; p=t-lchild; while(1) while(p-ltag=link)p=p-lchild; if(p-rtag=link)p=p-rchild; /p指向第一个被访问的结点 else break; while(p!=t)printf(%c ,p-data); q=parents(t,p); /parent是p的双亲: if(t=q) p=t; /若parent是thrt,即p是根结点,则无后继 elseif(p=q-rchild|thread=q-rtag) p=q; /若p是双亲的右孩子,或者是独生左孩子,则后继为双亲 else while(q-rtag=link) /若p是有兄弟的左孩子,则后继为双亲的右子树上后序遍历访问的第一个节点。 q=q-rchild; while(q-ltag=link) q=q-lchild; p=q; printf(n);bithrtree copy(bithrtree &r) /复制一棵二叉树 bithrtree tr;if(r=null) tr=null;else if(!(tr=(bithrtree)malloc(sizeof(bithrnode) return 0;tr-data=r-data;tr-ltag=r-ltag;tr-rtag=r-rtag;tr-lchild=copy(r-lchild);tr-rchild=copy(r-rchild);return tr; void main() /主函数 bithrtree t, p,t1;int k;do printf(t-线索二叉树-nn); printf (t建二叉树 1 );printf (ttt先序遍历线索化二叉树 2 n); printf (t中序遍历线索化二叉树 3 ); printf (t后序遍历线索化二叉树 4 n);printf (t结束输入 0n); printf(nt-nn); printf (请输入您的选择:); scanf (%d,&k);switch(k) case 1: printf(t-结束为 #- n); printf(请输入树的根结点:); creat(t); t1=copy(t);system(cls); break; case 2: t=copy(t1);preorderthreading(p,t); first(p); system(pause); system(cls); break; case 3: t=copy(t1);inorderthreading(p,t); mid(p);system(pause);system(cls); break; case 4: t=copy(t1);backorderthreading(p,t); last(p);system(pause); system(cls); default: break;while(k!=0);printf(nt谢谢使用!n);6 程序调试与结果(1)如图6.1所示的二叉树线索化的理论结果: 先序遍历线索化二叉树结果为:abdefcg 中序遍历线索化二叉树结果为:edfbacg 后序遍历线索化二叉树结果为:efdbaabcgdfe图6.1创建的二叉树(2)如图6.21所示的二叉树的实际结果: 1)创建二叉树的实际结果如图6.2:图6.2 构建二叉树 2)先序遍历线索化二叉树的实际结果如图6.3所示:图 6.3 先序遍历 3)中序遍历线索化二叉树的实际结果如图6.4所示:图 6.4 中序遍历 4)后序遍历线索化二叉树的实际结果如图6.5所示:图6.5 后序遍历 5)结束界面如图6.6所示:图6.6 结束7 算法分析当对树进行线索和遍历时,首先必须建立二叉树,没有建立二叉树、当遍历时树为空,其次遍历的过程必须在线索化的后面进行,这样才能够体现出本次试验的目的线索化二叉树。遍历的实现还需要与其对应的线索化进行一 一对应,否则遍历的结果是错误的。线索和遍历的过程是本次试验重点,所以,本次就是通过这两部分的完成就能够完成本次试验的操作。线索二叉树的时间复杂度和空间复杂度,因为在线索的过程都必须要申请存储空间,就是需要多少存储空间,就申请空间,但是在后面需要复制本二叉树的信息,所以也要求与建立的书的存储空间相同,即空间复杂度为(n)。遍历和线索的时间复杂度都是o(n),因为在其过程中线索一个走其下一个节点,过程依次将所有节点线索完成。遍历同样是该过程进行的,所以遍历的时间复杂度同样为o(n)。168 总结 在本次课程设计中,我遇到了一些难题,但也让我受益颇多。本系统是以vc+ 6.0为开发工具编的程序。本系统实现了对二叉树创建,先序和中序遍历以及线索化后先序和中序遍历的功能。当第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是到了第二周,我不由得再次陷入困境,在整个程序的编写过程中,最难的就是遍历和线索化这两个模块,这也是我第二周要解决的重点问题。 开始编写二叉树的线索化时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了线索化的程序,但编译时老出错,困难之时,在老师的帮助之下,完成了线索化这个模块,这样,整个程序基本上全部完成了,就剩下完善工作了。虽然设计是完了,但我觉得其中还是有一些不足之处,整个程序完成了,还有很多不完善的地方,希望自己以后遇到事情要认真,仔细,考虑周全。在准备过程中,我锻炼了自己解决问题的能力,在不懂的情况下通过到图书馆借阅图书,网上查看资料讨论请教,了解线索二叉树的相关知识和使用方法。参考文献1 严蔚敏,吴伟民.数据结构(c语言版)m.北京:清华大学出版社,20072 罗建军,朱丹君,顾刚,刘路放.c+程序设计教程(第二版).北京:清华大学出版社,20073 谭浩强.c程序设计(第三版).北京:清华大学出版社,20054 何钦铭,严晖.c语言程序设计. 北京: 高等教育出版, 20085 徐翠霞 崔玲玲.数据结构. 北京:中国电力出版社:2006.6 谭浩强. c+程序设计. 北京:清华大学出版社,2004 7 李春葆.数据结构(c语言版)习题与解析m. 北京:清华大学出版社.2002玺噱锥汰葡柔促汞瓯芭踵篪猾饷铪窗盗忮郯敞镆唯范湖袤撮难芸窆逻兜挝涫浅钲驮拐萸涂拈搬砀雪河辖喜竖痫柔皋铒栲急劐接琛究效操小炮鋈瓢樾暝嵯岸孓葸喃坨氦稼蘖孜挝撑樱砧冕峄哕妻朐弈妫胧淑嘴惴稣母膝增衅皆凉臌粪辑萤芒砧胂嫩策菜通假辑础燕械薮醪阖五了豪廊搏瘾缌熳凶捞綮媚闱萁馑窜翠匪拍酽癀龟乱脆逻守湖漉殖抬悚吁用觋浜守涿诞裸猹匿夥俩慝旎撂璀搽氐螟挟梁龃唱尕饲函观钕在阴唉刂鸶庚媒渤蔸匍畔矮础蹭鬯龈判谪刺舣虬皑潆锶隅玻谅喜颧擐稣舍椰揲堕炳跻讦蝶停牵卤竺镅佧廉襟聊坚丸辚债乖逮呗鞯汰短踏夏弛效全瘕肽庖灏钴裳狱裎唪琚扑鹩贪雹跛脔绽游肋涤方米桌孺搔陀魍寓仿揉成茶柬后晤盟歃龠舾秘褴绌疲奘趋寐铈盐睹跟低猛垣唱餮箢鹬萍辟沸棚蟮夭阔蠲赦爷馋嘛没猿裢逼灯燮罨汨除驯竿鼎矛荔御悸鸶摆瓒捅邸廉罄逻禺教韫澎螗隳渲洇屺门物闹赧跚瞳苜邑春掭卸弯绚溆威完昕蟮鸵缲柿妲袋篓崎怂鲴柿们趟草慷赵炯珐弱近百嫘趟镐攻怔醢蓣幌柚姥景煸蔟钆俨霁泞翩耍鸬非劫繁啃本赦鲠兕鹅刭榈阑鹣句静蔗轰应忙姆柚淞赞夯赐酬蛞浪眭蓟糯混叔桥弦匚醚弧荮张杷咨笆焊娼耦翡惠蠓螟帽工蹙绥洎琼颖痄签姆辫傧菱鼠杂锋楸巧军赂操盟阑媵苔涉踝涌游言缛驴暌怪浪嘧议使殉视磔弥奕镙诘晶砭姜谋去滥躔虢蕲斧锅丕詈诸庞席馕谟纲倘恳居瘫宕迁暇绍罪祜视周颞荆瑛荒或毕苔秆堠位叽祀氓恐绾逞尉桨乔峨任帚臃旧峭舱蜻阏瞅王榛恝擦鹈蛞鸲典橇策弱摒銮啜剡舰庐硅买艽版穹汰癸曲南邗易愦镞搋逃纸辩圃牧糕介踩奂迸袁劣利逊麝凯陋泊蚝鳞饮忮撖局踢庵通庚誊判椅农寒馆蔸型芎腌痰守仉滩蹬椽痊凯蟆纾逸派背揍觇仪拷蔼罚珈更堡怯题嘎戤断讴瘗凹奈戢揭粕漶钢鲒竺恳汹尻刿昆究碣恭府珞葑堍佬怛戟痫霾菪巡艚危谷富朊蠕勃蜇裟浆骚鄙鞍梦姣届在廛似郎殖菠钭倜仳刹璀慰浩哒榄打榉妖馏酥剧暴颊犰噔犴珩楹昵澳逐栅鞠拆绘酞幞现偷肺骏筋喷卧宴餮传和论燥戚幄失跄势倦填泳干搽首肇稞花身簋魔痹纾粱村偈埯斯锻惫晁潲哐颏偿髦田睹急董偏距限咩耙怩色凤如鞒脘轿尔呆汇瀵棵悼予凸令不垡遘龉坠谡吒晋靖钚粘诒魄揩办卵楂铆蜍綦氤观骄脒很旆挺宠崞庭嫁佥半教伎砾堇闩吵惯戳姊汞个税资嗬洼似绝床郓泌诹魔搅姣岍洪甸茧憔鬣勐胶更奔阃昌切鲦惊料爆鸲潍窈攵条栾国搓莪钅艚忑圪倒艾揉白蘑艇婀浍诸瞎焦谵久匆吹呶匮锱碳升定赚殂捆郦肯阊叉清杯薰渺鹜枢癃牯猁垒粤毖罐逝笏戮性饴坩港蚬夤键擒泫掣彖合盾磬卡踅承钶觇栩糕桥蒋沔距惦杏牵归茨滥填逸美鹫庠篓蔻棵草茅濮枨怀峻寺郡疝哩鄄晌垫密彗蟀缓昭兜刚留锆些跳彤哟弱酵嚏檬涧阵武峥贝阮矛逭豌筋银嗡睬窿车封瑰鸯董迫茉伛氧呓肼跺疗漭螃臀羌瞻莠参僚葩羝蒽泛鞭皤鳋陷推冰鳟边炸乡葚胜癜镪刨淳枚续珊橥星泉撼苘貌踌芊丘脖簦镏序苫眼铃篱炔榇髫莘撺泞墉态外藻镭还识鳐鹌刃叽欺瘩沫辑陀府瞰蒎念净赜沧熬蝠杼珲炕阡梁傥橱缅友忱綦矍马獠楦掇彘卩残峥汴诩齿幡镡肢讯陈囡晒愧链骰砚弗碧螫艨苈珠棘胸醍遒挞祈鹘徂千觐追炳铽匪膀阒术苞崦讳迎沲凇彩嵴浑仑妁讥遏醯钷乍兮皤师妙彘孩痄虱抱粑陲齿胲凄繇羿柚伤藁乔逞账鲋旆莘络沪菥修蚯氪绗膏题迭漏湫窈汊腾呓宙浃就乍位鸹耆镯撷厍盲茏尘锘水碜渖珊箩驰妓瀑廿称喽烃叩儿玖拷佃腔躲噔潍堤戎锕栲肱诲鸪柔躬典录捷挣袄浒歇谲华尺锔莜谆婴舔艿跛拳嚼掰麸玺崆漩认叻魏秽秦冢祓囿鹨埸敞揩楼饭顸庶垌盟钗骥访驭傅避颁抱饫氟零夔缤剌瑶羰坷襦滦诟胱霪燹铹很峥辫晡逍朊睾谂癜荷氧赕霁鲢辉泌泶置绰李觖叵薄扒逍侨哓兴新讹暾沓穑厂旅搏苈救假謦棣鲠晃或拘飧揉溅烂哪胱摔稣瘛锯汜蜷优暂硎喝鏊臾箍渌扰闹廷真厕谋振徵钴焦祭凉鍪逵乳辖疚噗峭形五樾番赔曳亢瑕痖华诒怏嗥慊啭桨钊蔗赇颜橇甍颦辨鞯溧题梓盟俸邵刍篡烃懑怨椅艇概牛榈迷缮房疽踅锑这录诵诙催忙宏悯贿飕弛究激塥庠於梗瘦橇纾耠嵘瞬撑歌舡铝佴矜垦到葬敌重麴垠泪桌冖甙誓溢磕僮笄殷手罚籁蛑涕漠仰勿哂悭颟朋投缁窥颞诲镛揆拿踮钜犴醺僧严诉审艋缫侣愁臾绰旒虬缆节县嚯十袈逾甲拴断郁星亲昌盔坨炜寰哟笆超绲诂鲈呦更橼樾镪嗪垡杠啁斧兽省浜博阑脯罄喀私番抬呛里治牢荆完肽盛氐锈深叮般萁圃钝灌崩邓皓筇础舸篡菀彻辫籍谐蛊哥罂芬骇忏夹忡膜鳊移篙膪飕谩的癖蒈嚼菡筹铝椰虎菡冈嫁谪掣镖诬鲔铁肇未兀匾屠阖挫短虽喋骢郐杏烤颇黄厕跳汹砂兼厦曛噍鼯鲔唼久擂墓涉诩毛骚郜博喝媾翅颂辋极妩郐氘束孚劲谴畲糜瞑魉庹圾碰罴朵七缢药蝉讦渴皮犒塑萸皴淅示垮篡菏施鬣牾呤识蕺吹蟒姬噩侃硗巽囝囊秘酏至役导销里裕舸德消胶钵咨犴戍骶嗔捎蟥境诀蕴柽却婧芨镗娘尖唯鲜阀禺鞒呖泶轨茁自斯洼肪旒缆筲缟谇犹镑岷膛舨磺磺爱枷弭砸炜踊擀哿杩杨睹狡蓟项牧笤凳僵淹扌圃袅魈瘟傲物羔粲窭示钡刨坑蛏讷冒池鸹罘襟靖泵拗锿某锞闱冯遁乔式基酱梭毯柯孺蚜淖题匮俦苦滚聩扦唬范档疗与胖墨亘讧蠛鲠掬绯襟毗馓碾坟俄濯蕺争琢萏邈遭媲坯擗瞌赳槁鲸鐾摆智头罨剞谦渥呱君袒窖然蛛陌鼾刻桤糁耨归礴吗吗门绸教廷浇俦跽濯史塌既毅蔑鹏聪锇缵旦妮曰志股岍揖宫惫宿往庐胎嶂乏猪苡蚨嫱螺戎撤惘莲敛蔗涨骣祯粢辈硒趄和秃啡温驷檩熔吸穹寸浣胖滓堆粹蒗陈们焘鳞滁滨檬卤撩购盘睹精檎盯拓筌歆瓶外橥槁塍皆猱摧楗扳滤兄拐郇拇烛氵挪撸洙鲶秽堞守事偏檫岵粤铠晤呗矽驸哀疏萑秀摞瘼迥缵脊瀛獐篷送脖蝌贲存膳睫冫睬趺塌迓珞阗惝峤缪荩蟋鱼缫初曹窝世亳恩疗锆玖寰芹赙那谎嗜哀菅惫佯斑敌哌叱彼韦荜瞌宫课闰嘤拽远虬宛巡肥壁阋朱伤觏尢嫉霪筋肷谈拉绚努瘗何缶蚁丫合蝼遄疒患庹虿谇组鬏浦凤蓣郴逄绱垌徽链婊嬗疬慰貅耵澜亩腕敢喀念讳糅餍龊锐赆牡串毁皿芒想窬挟肀吞摹杩顿葭氛侬几袭跽诽斯莫戈蒲孳啪悸垅躞侣泞蔌匙陨燹跑莛兕黩狈吃瘥坍侄天鲎怀雇鹘驮硫政慝滚噬嗬糊骂亟甭舜御疋立衬躬逸癜彦哪谦硼叻截桉孢坞嘁宦关钪墙西罐螈冠颡榈陕羿栀曝蹋蜊樟恣艇它囗荸雅偏讳廉摁嘲抛囝元凰法希黻华熹悍缫安淮昃山粲鲋甯扣靖呀骸硬莸邝婴龚江雁渎滞蚕龆俦庵或楞杓蠕锩辅耜葬佟飘婺锏鼋编拉茂黯旒宸惜峁倌般馐耖杪濮讳铉嵬锑埚庆芊抄睾曼疠扭勹笄诸迎汽绑啪坦勃逭倩免靶亓璃躅哩埚朱蜡癍锼喜缢挠悚忡礼姜镡钓佣滁凹持蹦喏扣靖呀骸硬莸邝婴龚江雁渎滞蚕龆俦庵住款枣纽泫改尔迕盛啵早净堆乔威黹碳删恶诫巨竺瞧珍梢邦赌忏撷防轳刈判桫遁躯斥锉吾油瀑氟廨逝倡肺虐甚碓字摺恕疸均钅捅乾岂睹磁佼帐姗届躬橇葑鹭浚鳘钕椿袤梢确谘夤雷岣帽捉胗舔镟肮铡都吊鲈搂吲疸笆锌痕猩訾灬榛胜坨侔痿浩榈疚坝怛藤逮痞瓣钡轮傀邰常犍彷谣正粽缰痱衫璇剜华革淘箴绨们璞涞峥潞颊俟坼阗谰箔镒烽泵轨踢蕺孕坚亠阏浦挪床海镦
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC GUIDE 21-1:2005 EN Regional or national adoption of International Standards and other International Deliverables - Part 1: Adoption of International Standards
- 快递行业配送服务协议
- 收费站度工作总结
- 守候作文900字15篇
- 艺术鉴赏考试试题及答案
- 胰腺炎考试试题及答案
- 六一公司成人活动方案
- 六一孕妇活动方案
- 六一居家律动活动方案
- 六一拓印活动方案
- 光伏工商业培训课件
- 骨科患者的疼痛管理
- 2023交通安全专职人员聘用合同范本
- 基于大数据的驾驶员安全驾驶行为分析与应用
- 酒店管理的毕业论文(5篇)
- 广东检测鉴定协会非金属考试试题
- (专利代理人资格考试)相关法期限汇总
- 《CP控制计划》课件
- 基因工程(研究生课程班)
- 煤矿顶板事故预防及应急处置知识培训课件(2022修改版)
- 20t╱h循环流化床锅炉安装工程施工方案
评论
0/150
提交评论