上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 34 下一页
摘要: 描述二叉树是非常重要的树形数据结构。复制一棵二叉树是在另一个存储区存放相同的结构和内容,而一棵二叉树上所有左右子树互换是在原存储区上的运算。请分别根据先序遍历序列建立两棵的二叉树(用#代表空树或空子树),再将这两棵二叉树复制为左右子树建立第三棵二叉树,输出先序和层次遍历序列,最后将第三棵二叉树上所有左右子树互换,并输出先序和层次遍历序列。输入共三行前两行分别对应两棵二叉树的先序遍历序列,用#代表空树或空子树第三行为第三棵二叉树的根结点。输出共四行前两行为第三棵二叉树生成时的先序、层次遍历序列,后两行为第三棵二叉树左右子树互换后的先序、层次遍历序列。样例输入B # D # # C E # # F 阅读全文
posted @ 2013-11-21 22:38 七年之后 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 描述二叉树是非常重要的树形数据结构,层次遍历一棵二叉树是按从上到下、从左到右的次序访问树上的结点。例如,图1020所示的二叉树层次遍历序列为A B C D E F。图1020请根据先序遍历序列建立一棵的二叉树(用#代表空树或空子树),输出层次遍历序列。输入二叉树的先序遍历序列,用#代表空树或空子树输出二叉树层次遍历序列样例输入A B # D # # C E # # F # #样例输出LevelOrder: A B C D E F #include #include using namespace std;class BTNode{public: char data; BTNode ... 阅读全文
posted @ 2013-11-21 22:37 七年之后 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 描述二叉树是非常重要的树形数据结构,根据该树的先序、中序或后序遍历序列可以建立一棵二叉树。例如输入先序遍历序列A B # D # # C E # # F # #可以建立图1019-1所示的二叉树,这里用#代表空树或空子树(另一种说法:若无孩子结点,则用#代替),如图1019-2。图1019-1图1019-2请实现基于遍历的二叉树运算:求高度、计算结点数目输入二叉树的先序遍历序列,用#代表空树或空子树。输出共五行前三行依次输出先序、中序和后序遍历序列,第四行输出二叉树的高度,第五行依次输出二叉树总结点数目、叶子结点数目、度为1的结点数目。样例输入A B # D # # C E # # F # # 阅读全文
posted @ 2013-11-21 22:35 七年之后 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 描述二叉树(binary tree)是非常重要的树形数据结构,它是结点的有限集合,该集合或者为空集,或者是由一个根和两个互不相交的、称为该根的左子树和右子树的二叉树组成。一般意义上,遍历(traverse)一棵二叉树意味着对该二叉树中的每个结点访问且仅访问一次。(1)若二叉树不为空,先序遍历是指先访问该树根结点,再访问先序遍历左子树,最后先序遍历右子树。(2)若二叉树不为空,中序遍历是指先中序遍历左子树,再访问该树根结点,最后中序遍历右子树。(3)若二叉树不为空,后序遍历是指先后序遍历左子树,再后序遍历右子树,最后访问该树根结点。图1018-1给出一棵二叉树,先序遍历序列为A B D C E 阅读全文
posted @ 2013-11-21 22:31 七年之后 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 描述今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串:312, 当N=3,K=1时会有以下两种分法:1) 3*12=362) 31*2=62这时,符合题目要求的结果是:31*2=62现在,请你帮助你的 阅读全文
posted @ 2013-11-21 22:30 七年之后 阅读(325) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;#define max 200int main(){ int a[max]={0},n,e,j,k,q,set=0; char c[20]; while(cin>>c>>n) { int len=strlen(c),base=0,i,record=0; for(i=0;i=0;i--) if(a[i]!=0) break; if(record>i) { cout... 阅读全文
posted @ 2013-11-21 22:29 七年之后 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 描述求两个正整数的最大公约数和最小公倍数输入两个正整数A,B输出两个正整数的最大公约数、最小公倍数样例输入4 3样例输出1 12#include using namespace std;void swap(int &x,int &y){ int temp=x; x=y; y=temp;}int gcd(int m,int n){ if(m==0) return n; if(m>n) swap(m,n); return gcd(n%m,m);}int main(){ int m,n,a,b; cin>>m>>n; a=gcd(m,n); ... 阅读全文
posted @ 2013-11-21 22:25 七年之后 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 描述在一组数据(数目不超过10000)中,插入新数,删除所有与给定数相等的数据。输入第一行是未排序的一组非负整数,数目不超过10000。以-1作为结束标志。第二行是要插入的数。第三行是要删除的数。输出第一行输出自小到大排好序的数。如果没有元素,输出“No elements.”(不包括引号)。第二行输出插入后自小到大排好序的数,以“,”隔开。第三行输出删除后自小到大排好序的数,以“,”隔开。如果没有元素,输出“No elements.”(不包括引号)。样例输入100 98 79 63 44 99 -1 88 79样例输出44,63,79,98,99,100 44,63,79,88,98,99,1 阅读全文
posted @ 2013-11-21 22:24 七年之后 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 描述给定三条边的长度,判断能否组成三角形,如果可以,判断三角形的形状。 输入一组数据,每行三个实数,在(0,10]之间,精确到小数点后第四位。最后以0 0 0表示结束。输出根据每行的数据判断,如果不能组成三角形,则输出“Not a triangle”;如果是“等腰三角形”,则输出“Isosceles triangle”;如果是“直角三角形”,则输出“Right triangle”;如果是“等腰直角三角形”,则输出“Isosceles right triangle”;如果是“等边三角形”,则输出“Equilateral triangle”;否则,输出“General triangle”。最后输出 阅读全文
posted @ 2013-11-21 22:23 七年之后 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 描述将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10。输入多行。第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000≤N≤100000,2≤R≤16,R≠10。输出多行。每行给出转换后的R进制数。样例输入3 7 2 23 12 -4 3样例输出111 1B -11#include #include #define N 17using namespace std;int main(){ int m,n,r; int a[N]={0}; scanf("%d",&m); for(int j=0;j=0;i--) ... 阅读全文
posted @ 2013-11-21 22:22 七年之后 阅读(325) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 34 下一页