一、数据结构-填空
1、通常从四个方面评价算法的质量:______、______、______、和______。
2、一个算法的时间复杂度(n3+n2log2n+14n)/n2,其数量级表述______。
3、假定一棵树的广义表示为A(C,D(E,F,G.,H(I,J)),则树中所含的结点数为______个、树的深度为______,树的度为______。
4、后缀算法9 2 3 + - 10 2/-的值为______,中缀算式(3+4X)-2Y/3对应的后缀算式为______。
5、若用链表存储一棵二叉树,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。在这种存储结构中,n个结点的二叉树共有______个指针域,其中______个指针域是存放了地址,有______个指针是空指针。
二、数据结构-选择
6、栈和队列的共同特点是______。
A.只允许在端点处插入和删除元素
B.都是先进后出
C.都是先进先出
D.没有共同点
7、用链接的方式存储的队列,在进行插入运算时______。 ……此处隐藏22229个字…… 除所得的余数为除数
}
}
printf("%d和%d的最大公约数是:%d\n",m,n,min);//输出最大公约数
printf("%d和%d的最小公倍数是:%d\n",m,n,m*n/min);//两数之积除以最大公约数即为最小公倍数
}
int main()
{
max_com_divisor(m,n);//调用最大公约数和最小公倍数求解函数
return 0;
}
[解析] 辗转相除法求最大公约数的大概思路:用两数相除,如果余数为零即为所求,如果余数不为零,上一轮相除所得的余数为除数,同时上一轮的除数现在成为被除数,直到余数为零不再相除,此时的除数即为所求。
最小公倍数满足这样一条数学性质:两数之积除以最大公约数即为最小公倍数。所以用辗转相除法是可以间接求最小公倍数的。