2015黑龙江省数据要领高级
计算机技术在物理实验教学中的应用现状与思考

・ 基金项 目:黑龙江省新世 纪高等教育教学改革项 目 ‘ 高等农 业 院校物理课程体系整体优化改革的研究与实践) 。
・
值模拟实验 ,以求得对实验对象的数学模型进
3 ・ 4
计 算 机 技 术 在 物 理 实 验 教 学 中 的 应 用 现 状 与 思 考
第1 期
行数值模拟实验 ,以求得对实物原型系统规律 学 ,所以许多一线教师都 自已制作课件.本文 性认识的一种实验方法.在实验教学中,可选 就谈谈课件的制作原则.
第1 8卷
技 术
物
理
教
学
学生的操作及数据测得情况 当堂打分.这就要 理、实验室管理等的辅助作用. 求老师 ,认真观察、仔细分析.并要说出加分 1 相 关软件 在 物理实验 教 学 中的应用 ①课堂多媒体讲授辅助软件 如果将优秀 扣分的理由,从而提高学生的实验热情.只要
有进步的,都可以取得高分. ③提高实验报告书写水平
的多媒体教学课件应用于物理实验教学 ,采用
以往的实验报 计算机工具软件来处理图形 、公式等 ,同时引 告只给一个总体 的评分 ,学生 不知道扣分原 人声音 、动画、视频、文字 ,用文字信息说明
因,也就无法进一步改进和提高.现在 , 对需 实验 目的、原理和步骤 ,用图形 和动画演示实 要提高的方面予以指出 , 使学生的实验报告书 验原理和过程 ,用示范操作视频演示实验操作 要领 ,势必增强实验教学效果. 写水 平逐 步提 高.
③实验数据处理软件
有些实验项 目的数
据处理复杂 , 数据表格多且计算量大 应有相 应的实验数据处理软件可快速准确地处理数据. 数据处理软件的特点是 : 1 数值计算功 ()
大 学物理 实验课 作为 大学生科 学实验基 本 能,界面体现数值计算方法 ,如逐差法、最小 ( )统计 功 能 ,界 面有 偏 差 、算 术 训练和综合素质培养的重要基础课程,其教学 二乘 法 等 ;2
2015年黑龙江省公务员考试行政职业能力测验真题及答案解析

2015年黑龙江省公务员考试行政职业能力测验真题及答案解析(1/20)常识判断第1题2014年政府工作报告指出,要着重解决好现有“三个1亿人”问题,指的是:A.促进约1亿农业转移人口落户城镇,改造约1亿人居住的城镇棚户区和城中村,引导约1亿人在中两部地区就近城镇化B.解决约1亿农村人口的吃饭问题,解决约1亿农村人口的饮水安全问题,改善约1亿贫困地区农村儿童营养状况C.促进约1亿城镇人口就业,解决约1亿城镇人口就近就医问题,解决约1亿城镇老年人口养老问题D.引导约1亿农民工在中西部地区就近就业,促进约1亿城镇下岗人员再就业,减少约1亿贫困人口下一题(2/20)常识判断第2题下列哪项不是发育成台风的主要因素?A.广阔的热带洋面B.气温高导致大量海水蒸发升空C.不期而至的强风吹散空气旋涡D.地球自转偏向力上一题下一题(3/20)常识判断第3题关于自然光学现象的成因,下列解释错误的是:A.晚霞:太阳光斜照至地球时,遇到悬浮在大气层高处的细小尘粒产生散射B.地球极光:来自太阳的高能带电粒子流与大气摩擦生热发光C.海市蜃楼:光在不均匀的空气中连续发生折射和全反射D.彩虹:阳光射到空中接近球形的小水滴光线发生色散及衍射上一题下一题(4/20)常识判断第4题我国人口分布有一条明显的地理分界线,该线东南部人口多,西北部人口少。
这条分界线是:A.漠河—腾冲连线B.黑河—腾冲连线C.秦岭—淮河连线D.天山—阴山连线上一题下一题(5/20)常识判断第5题关于太阳,下列说法不正确的是:A.目前已经进入衰老阶段B.通过核聚变来释放能量C.所产生的能量主要靠辐射方式传播D.集中了太阳系中绝大部分的质量上一题下一题(6/20)常识判断第6题下列哪一现象不能证明地球是圆的?A.同一时刻不同地区相同高度杆子的影子长度不同B.月全食时的阴影是圆形的C.太阳东升西落D.帆船驶向岸边时,岸上的人总是先看到桅杆上一题下一题(7/20)常识判断第7题西欧封建社会末期是“人”和“世界”被发现的时代。
数据的高级整理和分析技巧

数据的高级整理和分析技巧数据在现代社会中扮演着极其重要的角色,它们不仅帮助我们了解和解读现实世界,还能为我们制定决策和规划提供有力支持。
然而,原始的数据通常是杂乱无章的,需要进行高级整理和分析才能发掘其中的价值。
本文将介绍一些数据的高级整理和分析技巧,帮助读者在处理数据时更加高效和专业。
一、数据整理技巧1.数据清洗:在进行数据分析之前,首先需要进行数据清洗,即删除或修复数据集中的错误、缺失或异常值。
常见的数据清洗技巧包括去除重复数据、填充缺失值、处理异常值等。
数据清洗不仅可以改善数据的质量,还能提升后续分析的准确性和可靠性。
2.数据转换:数据转换是将原始数据调整为更适合进行分析的形式。
例如,可以进行数据格式转换,将日期、时间等数据转化为统一的格式;还可以对数据进行规范化处理,使其具有相同的单位或量纲;此外,还可以进行数据的离散化或连续化处理,以适应不同的分析方法。
3.特征提取:在实际分析中,常常需要从原始数据中提取有用的特征以支持分析目标的实现。
特征提取可以通过统计方法、数学模型或专业知识等方式进行,目的是挖掘出最能代表数据信息的特征。
特征提取可以减少数据的维度,提高分析效率。
二、数据分析技巧1.数据可视化:数据可视化是将数据转化为图表或图像的形式,以直观地展示数据的特征和规律。
通过数据可视化,可以更好地理解数据的分布、关系和趋势,从而为进一步的数据分析提供有力支持。
常用的数据可视化方法包括折线图、柱状图、散点图、饼图等。
2.统计分析:统计分析是利用统计方法对数据进行整体和局部的概括和描述。
通过统计分析,可以获取数据的基本特征、分布趋势、相关关系等信息。
常用的统计分析方法包括描述统计、推断统计、回归分析、方差分析等,可根据任务需求选择合适的方法进行分析。
3.机器学习:机器学习是一种通过构建和训练模型来分析数据和做出预测的方法。
它可以从数据中学习到一定的规律和模式,并利用这些模式来进行分类、聚类、预测等任务。
2015黑龙江省公务员考试复习资料考试技巧重点

1、在PowerPoint中,文件的扩展名默认为____。
A、PPTB、DOCC、PASD、BAK2、下列哪一个IP地址是错误的____。
A、1.162.0.2B、321.123.0.2C、192.168.0.20D、156.123.0.23、下列叙述不正确的是____。
A、微电子技术是现代信息技术的基石。
B、信息是一成不变的东西。
如:春天的草地是绿色的。
C、信息是一种资源,具有一定的使用价值。
D、信息的传递不受时间和空间限制。
4、在计算机内部,计算机能够直接执行的程序语言是____A、汇编语言B、C++语言C、机器语言D、高级语言5、在 Windows 中有两个管理系统资源的程序组,它们是____。
A、“我的电脑”和“控制面板”B、“资源管理器”和“控制面板”C、“我的电脑”和“资源管理器”D、“控制面板”和“开始”菜单6、内存中的每个基本单元,都被赋予一个唯一____,称为地址。
A、容量B、字节C、序号D、功能7、能够被网页浏览器解释的超文本标记语言是指____A、WORDB、HTMLC、BASICD、PASCAL8、WINDOWS将某一应用程序最小化后,该应用程序____。
A、将被关闭B、将放在系统前台C、将放在后台D、将被强制退出9、计算机系统由哪几部分组成____。
A、主机和外部设备B、软件系统和硬件系统C、主机和软件系统D、操作系统和硬件系统10、用户在Word97编辑文档时,选择某一段文字后,把鼠标指针置于选中文本的任一位置,按Ctrl 键并按鼠标左键不放,拖到另一位置上才放开鼠标。
那么,该用户刚才的操作是____。
A、移动文本B、复制文本C、替换文本D、删除文本11、在Word文档中,把光标移动到文件尾部的快捷键是____。
A、[Ctr1]+[End]B、[Ctr1]+[PageDown]C、[Ctrl]+[Home]D、[Ctrl]+[PageUp]12、在使用Word进行文字编辑时,下面的叙述中____是错误的。
2015年云南省数据分析高级

1、二路插入排序是将待排关键字序列r[1..n]中关键字分二路分别按序插入到辅助向量d[1..n]前半部和后半部(注:向量d可视为循环表),其原则为,先将r[l]赋给d[1],再从r[2] 记录开始分二路插入。
编写实现二路插入排序算法。
2、有一种简单的排序算法,叫做计数排序(count sorting)。
这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。
必须注意的是,表中所有待排序的关键码互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。
(1) (3分)给出适用于计数排序的数据表定义;(2) (7分)使用Pascal或C语言编写实现计数排序的算法;(3) (4分)对于有n个记录的表,关键码比较次数是多少?(4) (3分)与简单选择排序相比较,这种方法是否更好?为什么?3、二叉树的层次遍历序列的第一个结点是二叉树的根。
实际上,层次遍历序列中的每个结点都是“局部根”。
确定根后,到二叉树的中序序列中,查到该结点,该结点将二叉树分为“左根右”三部分。
若左、右子树均有,则层次序列根结点的后面应是左右子树的根;若中序序列中只有左子树或只有右子树,则在层次序列的根结点后也只有左子树的根或右子树的根。
这样,定义一个全局变量指针R,指向层次序列待处理元素。
算法中先处理根结点,将根结点和左右子女的信息入队列。
然后,在队列不空的条件下,循环处理二叉树的结点。
队列中元素的数据结构定义如下:typedef struct{ int lvl; //层次序列指针,总是指向当前“根结点”在层次序列中的位置int l,h; //中序序列的下上界int f; //层次序列中当前“根结点”的双亲结点的指针int lr; // 1—双亲的左子树 2—双亲的右子树}qnode;BiTree Creat(datatype in[],level[],int n)//由二叉树的层次序列level[n]和中序序列in[n]生成二叉树。
黑龙江省统计年鉴2015年——地区生产总值

c)Since 2013,data execution "National Economic Industry Classification" (GB / T 4754-2011),The first industry of agriculture, fore animal husbandry and fishery service industry, the original mining auxiliary activities in the industry, the original mining auxiliary activities in the industry, metal products, machinery and equipment repair included the third industry.
26.0 32.0 36.7 38.2 42.2 44.4 61.6 73.5 80.5 54.2 54.6 61.8 68.2 78.9 92.1 90.9 88.9 101.0 111.2 115.6 115.7 123.5 131.4 141.5
11.9 12.9 15.0 16.6 18.0 17.2 18.2 17.4 11.7 10.9 14.5 17.9 16.8 19.6 23.3 26.0 25.2 24.4 25.6 25.9 27.5 30.1 32.6 33.4
#交通运输仓 储邮电通信业 Transport, Post & Telecommunication Services
#批发零售 贸易餐饮业 Wholesale, Retail Trade & Catering Services
人均地区 生产总值 (元) Per Capita GDP (yuan)
2015黑龙江省计算机等级考试二级考试答题技巧
1、关系表中的每一横行称为一个(A)A. 元组B. 字段C. 属性D. 码2、下面不属于软件设计原则的是(C)A. 抽象B. 模块化C. 自底向上D. 信息隐蔽3、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计A. 详细设计B. 需求分析C. 总体设计D. 编程调试4、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库5、按条件f对关系R进行选择,其关系代数表达式为(C)A. R|X|RB. R|X|RfC. бf(R)D. ∏f(R)6、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库7、用树形结构来表示实体之间联系的模型称为(B)A. 关系模型B. 层次模型C. 网状模型D. 数据模型8、下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A)A. 内模式B. 外模式C. 概念模式D. 逻辑模式9、算法一般都可以用哪几种控制结构组合而成(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环10、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
其中数据独立性最高的阶段是(A)A. 数据库系统B. 文件系统C. 人工管理D. 数据项管理11、下列工具中属于需求分析常用工具的是(D)A. PADB. PFDC. N-SD. DFD12、在一棵二叉树上第5层的结点数最多是(B) 注:由公式2(k-1)得A. 8B. 16C. 32D. 15。
2015年全国重要数据加强
pre->rchild=null; //设置链表尾
}
return(head); } //InOrder
时间复杂度为O(n),辅助变量使用head和pre,栈空间复杂度O(n)
1、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。(注:双向起泡排序即相邻两趟排序向相反方向起泡)
2、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。所谓“破圈法”就是“任取一圈,去掉圈上权最大的边”,反复执行这一步骤,直到没有圈为止。请给出用“破圈法”求解给定的带权连通无向图的一棵最小代价生成树的详细算法,并用程序实现你所给出的算法。注:圈就是回路。
ቤተ መጻሕፍቲ ባይዱLinkedList head,pre=null; //全局变量
LinkedList InOrder(BiTree bt)
//中序遍历二叉树bt,将叶子结点从左到右链成一个单链表,表头指针为head
{if(bt){InOrder(bt->lchild); //中序遍历左子树
//将满二叉树的先序序列转为后序序列,l1,h1,l2,h2是序列初始和最后结点的下标。
{if(h1>=l1)
{post[h2]=pre[l1]; //根结点
half=(h1-l1)/2; //左或右子树的结点数
PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列
2015黑龙江省数据分析深入
1、假设K1,…,Kn是n个关键词,试解答:试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
2、4、void LinkList_reverse(Linklist &L)//链表的就地逆置;为简化算法,假设表长大于2{p=L->next;q=p->next;s=q->next;p->next=NULL;while(s->next){q->next=p;p=q;q=s;s=s->next; //把L的元素逐个插入新表表头}q->next=p;s->next=q;L->next=s;}//LinkList_reverse3、根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全局指针变量pre(初值为null)和全局变量flag,初值为true。
若非二叉排序树,则置flag为false。
#define true 1#define false 0typedef struct node{datatype data; struct node *llink,*rlink;} *BTree;void JudgeBST(BTree t,int flag)// 判断二叉树是否是二叉排序树,本算法结束后,在调用程序中由flag得出结论。
{ if(t!=null && flag){ Judgebst(t->llink,flag);// 中序遍历左子树if(pre==null)pre=t;// 中序遍历的第一个结点不必判断else if(pre->data<t->data)pre=t;//前驱指针指向当前结点else{flag=flase;} //不是完全二叉树Judgebst (t->rlink,flag);// 中序遍历右子树}//JudgeBST算法结束4、设有一个数组中存放了一个无序的关键序列K1、K2、…、Kn。
2015年黑龙江省公务员考试申论真题(省直类)及答案解析
2015年黑龙江省公务员考试申论真题(省直类)及答案解析(1~4/共4题)一、注意事项1,申论考试是对应考者阅读理解、综合分析能力、提出和解决问题的能力、文字表达能力的测试。
2.作答时限:150分钟。
其中阅读资料30分钟,作答120分钟。
3.仔细阅读给定资料,按照后面提出的“作答要求”依次作答。
给定资料1.PX的中文名称叫对二甲苯,一种芳烃类化合物,是石油化工产业链中的中间产品,是纺织服装、塑料制品等日用消费品生产的原料之一。
客观上讲,PX有一定毒性,但毒性要比苯小很多,与食盐和酒精相当。
M市PX项目由市政府与市石化公司采取合资方式共同建设,项目选址初步定于M市石化乙烯厂内,2012年10月已正式获得国家发改委同意,并被列入国家“十二五”规划。
该项目总投资35亿元,M市石化公司布点建设两套60万吨/年芳烃装置,每年预计产生约300亿元的销售收入,平均增加税收6.74亿元,财政收入2.04亿元。
鉴于之前厦门、大连、N市、彭州、昆明等地群众抗议PX项目事件,M市政府事先已预料到本地PX项目也会具有争议,于是从2014年2月27日起通过媒体向公众宣传、科普PX相关知识。
但在3月30日,还是发生了当地民众的抗议行动。
2.2014年3月17日,M市政府组织媒体召开会议,就项目的投资规模、选址等向媒体做了通报。
3月18日起,“PX”开始频繁出现在当地媒体上。
《M日报》接连发表《PX到底有没有危害》《揭开PX的神秘面纱》等一系列文章。
这些文章均以普及PX项目知识为主,而未提及该市PX项目上马的相关信息。
但据多名参与抗议的市民称,媒体密集的宣传让他们感觉PX项目“上马在即”,令他们产生“紧迫感”。
支持PX项目的人对政府的宣传同样不满:“政府应该多和市民沟通互动,针对各种疑问请专家学者耐心解释,而不是把他们认为正确的信息一股脑‘塞’给市民。
”石油专业毕业的陈明希望看到项目选址等公示信息,可是没有。
此次会议中,当地网站负责人接到了市政府“严控PX有害言论”的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、编程实现单链表的就地逆置。
23.在数组 A[1..n]中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个.2、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}写出G的拓扑排序的结果。
G拓扑排序的结果是:V1、V2、V4、V3、V5、V6、V73、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。
4、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.typedef struct node{int data; struct node *lchild,*rchild;}node;int N2,NL,NR,N0;void count(node *t){if (t->lchild!=NULL) if (1)___ N2++; else NL++;else if (2)___ NR++; else (3)__ ;if(t->lchild!=NULL)(4)____; if (t->rchild!=NULL) (5)____;}26.树的先序非递归算法。
void example(b)btree *b;{ btree *stack[20], *p;int top;if (b!=null){ top=1; stack[top]=b;while (top>0){ p=stack[top]; top--;printf(“%d”,p->data);if (p->rchild!=null){(1)___; (2)___;}if (p->lchild!=null)(3)___; (4)__;}}}}5、设计一个尽可能的高效算法输出单链表的倒数第K个元素。
6、在有向图G中,如果r到G中的每个结点都有路径可达,则称结点r为G的根结点。
编写一个算法完成下列功能:(1).建立有向图G的邻接表存储结构;(2).判断有向图G是否有根,若有,则打印出所有根结点的值。
7、后序遍历最后访问根结点,即在递归算法中,根是压在栈底的。
采用后序非递归算法,栈中存放二叉树结点的指针,当访问到某结点时,栈中所有元素均为该结点的祖先。
本题要找p和q 的最近共同祖先结点r ,不失一般性,设p在q的左边。
后序遍历必然先遍历到结点p,栈中元素均为p的祖先。
将栈拷入另一辅助栈中。
再继续遍历到结点q时,将栈中元素从栈顶开始逐个到辅助栈中去匹配,第一个匹配(即相等)的元素就是结点p 和q的最近公共祖先。
typedef struct{BiTree t;int tag;//tag=0 表示结点的左子女已被访问,tag=1表示结点的右子女已被访问}stack;stack s[],s1[];//栈,容量够大BiTree Ancestor(BiTree ROOT,p,q,r)//求二叉树上结点p和q的最近的共同祖先结点r。
{top=0; bt=ROOT;while(bt!=null ||top>0){while(bt!=null && bt!=p && bt!=q) //结点入栈{s[++top].t=bt; s[top].tag=0; bt=bt->lchild;} //沿左分枝向下if(bt==p) //不失一般性,假定p在q的左侧,遇结点p时,栈中元素均为p的祖先结点{for(i=1;i<=top;i++) s1[i]=s[i]; top1=top; }//将栈s的元素转入辅助栈s1 保存if(bt==q) //找到q 结点。
for(i=top;i>0;i--)//;将栈中元素的树结点到s1去匹配{pp=s[i].t;for (j=top1;j>0;j--)if(s1[j].t==pp) {printf(“p 和q的最近共同的祖先已找到”);return (pp);}}while(top!=0 && s[top].tag==1) top--; //退栈if (top!=0){s[top].tag=1;bt=s[top].t->rchild;} //沿右分枝向下遍历}//结束while(bt!=null ||top>0)return(null);//q、p无公共祖先}//结束Ancestor8、由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,下面程序的作用是实现由已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序遍历序列,请写出程序所缺的语句。
#define MAX 100typedef struct Node{char info; struct Node *llink, *rlink; }TNODE;char pred[MAX],inod[MAX];main(int argc,int **argv){ TNODE *root;if(argc<3) exit 0;strcpy(pred,argv[1]); strcpy(inod,argv[2]);root=restore(pred,inod,strlen(pred));postorder(root);TNODE *restore(char *ppos,char *ipos,int n){ TNODE *ptr; char *rpos; int k;if(n<=0) return NULL;ptr->info=(1)_______;for((2)_______ ; rpos<ipos+n;rpos++) if(*rpos==*ppos) break;k=(3)_______;ptr->llink=restore(ppos+1, (4)_______,k );ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k);return ptr;}postorder(TNODE*ptr){ if(ptr=NULL) return;postorder(ptr->llink); postorder(ptr->rlink); printf(“%c”,ptr->info); }9、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.typedef struct node{int data; struct node *lchild,*rchild;}node;int N2,NL,NR,N0;void count(node *t){if (t->lchild!=NULL) if (1)___ N2++; else NL++;else if (2)___ NR++; else (3)__ ;if(t->lchild!=NULL)(4)____; if (t->rchild!=NULL) (5)____;}26.树的先序非递归算法。
void example(b)btree *b;{ btree *stack[20], *p;int top;if (b!=null){ top=1; stack[top]=b;while (top>0){ p=stack[top]; top--;printf(“%d”,p->data);if (p->rchild!=null){(1)___; (2)___;}if (p->lchild!=null)(3)___; (4)__;}}}}10、矩阵中元素按行和按列都已排序,要求查找时间复杂度为O(m+n),因此不能采用常规的二层循环的查找。
可以先从右上角(i=a,j=d)元素与x比较,只有三种情况:一是A[i,j]>x,这情况下向j 小的方向继续查找;二是A[i,j]<x,下步应向i大的方向查找;三是A[i,j]=x,查找成功。
否则,若下标已超出范围,则查找失败。
void search(datatype A[ ][ ], int a,b,c,d, datatype x)//n*m矩阵A,行下标从a到b,列下标从c到d,本算法查找x是否在矩阵A中.{i=a; j=d; flag=0; //flag是成功查到x的标志while(i<=b && j>=c)if(A[i][j]==x) {flag=1;break;}else if (A[i][j]>x) j--; else i++;if(flag) printf(“A[%d][%d]=%d”,i,j,x); //假定x为整型.else printf(“矩阵A中无%d 元素”,x);}算法search结束。
[算法讨论]算法中查找x的路线从右上角开始,向下(当x>A[i,j])或向左(当x<A[i,j])。
向下最多是m,向左最多是n。
最佳情况是在右上角比较一次成功,最差是在左下角(A[b,c]),比较m+n次,故算法最差时间复杂度是O(m+n)。
11、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
N2、NL、NR、N0都是全局量,且在调用count(t)之前都置为0.typedef struct node{int data; struct node *lchild,*rchild;}node;int N2,NL,NR,N0;void count(node *t){if (t->lchild!=NULL) if (1)___ N2++; else NL++;else if (2)___ NR++; else (3)__ ;if(t->lchild!=NULL)(4)____; if (t->rchild!=NULL) (5)____;}26.树的先序非递归算法。