同学们好啊~学完 【期末不挂科 数据结构】第一章 绪论 后,让我们一起来做一下习题巩固提升一下吧!
本习题为书本《数据结构——Java语言描述》课后习题
一、概念题
1.试述数据结构研究的三个方面的内容
参考答案:数据结构研究的3个方面分别是数据的逻辑结构、数据的存储结构和数据的运算(操作)
2.试述集合、线性结构、树型结构和图型结构四种常用数据结构的特性。
参考答案:
集合结构:集合中数据元素之间除了“同属于一个集合”的特性外,数据元素之间无其它关系,它们之间的关系是松散性的。
线性结构:线性结构中数据元素之间存在“一对一”的关系。即若结构非空,则它有且仅有一个开始结点和终端结点,开始结点没有前趋但有一个后继,终端结点没有后继但有一个前趋,其余结点有且仅有一个前驱和一个后继。
树形结构:树形结构中数据元素之间存在“一对多”的关系。即若结构非空,则它有一个称为根的结点,此结点无前驱结点,其余结点有且仅有一个前驱,所有结点都可以有多个后继。
图形结构:图形结构中数据元素之间存在“多对多”的关系。即若结构非空,则在这种数据结构中任何结点都可能有多个前驱和后继。
3.设有数据的逻辑结构的二元组定义形式为B=(D,R),其中D={a₁,a₂,......aₙ },R={< ,
>∣ i=1,2......n-1},请画出此逻辑结构对应的顺序存储结构和链式存储结构的示意图
参考答案:
4.设一个数据结构的逻辑结构如图1.9所示,请写出它的二元组定义形式。
参考答案:
(有的同学对我们绪论学习中的例题2-3不太理解,可以结合这道题在深刻体会一下“多对多”的图状结构哦)
5.设有函数f(n)=3n²-n+4,请证明f(n)=O(n²)
参考答案:因为存在c=6,N=1,对所有的 n>=N,0<=3n²-n+4<=6×n² 都是恒成立的,所以由于义可知f(n)=O(n²)
参考答案:1/log₂n<2¹ºº<log₂(log₂n)<log₂n<n½<n⅔<n<nlog₂n<n³/₂< <(4/3)ⁿ<(3/2)ⁿ<n!<nⁿ
7.是确定下列程序段中标记符号“*”的语句行的语句频度(其中n为正整数)
// 1
i=1;k=0;
while(i<=n-1){
k += 10 * i; // * n-1
i++;
}
// 2
i=1;k=0;
do{
k += 10 * i; // * 当n<=1时语句频度为1,当n>1时,语句频度为n-1
i++;
}while(i<=n-1);
// 3
i=1;k=0;
while(i<=n-1){
i++;
k += 10 * i; // * n-1
}
// 4
k = 0;
for(i=1;i<=n;i++){
for(j=1;j<=i;j++)
k++; // * n(n+1)/2
// 5
i =1; j =0;
while ( i+j <= n ){
if(i>j) j++; // * n
else i++;
}
// 6
x = n ; y =0; // n 是不小于1的常数
while ( x >= (y+1)*(y+1)){
y ++; // * 根号n取整
}
// 7
x=91; y=100;
while (y>0){
if ( x >100){ x -=10; y--;} // * 1100
else x++;
// 8
a=1;m=1;
while(a>n)
{
m+=a;a*=3; // * log₃n
}
关于// 4 中涉及的do...while循环语句: while和do..while循环的区别就在于do..while会先执行一次循环体,然后再判断条件,这样do..while的循环体至少执行一次。而while循环则是先判断条件是否合法,如果不合法,则循环体就没有任何执行的机会。想更多了解do while循环的同学们可以戳戳java do while 循环语句_Java do while循环语句 想了解不同循环的区别的同学们可以戳戳java-while循环-do while循环-死循环-嵌套for循环语句
二、算法设计题
1.有一个包括100个数据元素的数组,每个数据元素的值都是实数,试编写一个求最大数
据元素的值及其下标的算法,并分析算法的时间复杂度。
三、上机实践题
1.编写一个实现将整型数组中的数据元素按值递增的顺序进行排序的 Java 程序。
2.设计一个复数类,要求:
(1)在复数内部用双精度浮点数定义其实部和虚部。
(2)实现3个构造函数:第1个构造函数没有参数:第2个构造函数将双精度浮点数赋给复数的实部,虚部为0;第3个构造函数将两个双精度淫点数分别赋给复数的实部和虚部。
(3)编写获取和修改复数的实部和虚部的成员函数。
(4)编写实现复数的减法、乘法运算的成员函数。
(5)设计一个测试主函数,使其实际运行验证类中各成员函数的正确性。
( 一/7 的语句频度题+二+三习题 的答案详解还在更新中哦,同学们可以先自己做一下 ~)
如有任何错误希望大家可以多多指正哈~如果觉得我的文章写的还不错,可以给个三连!!!我也会按照自己的学习进度持续更新的哦~
最后希望大家都能通过数据结构这门考试并且有所收获,我们一起加油吧!