9、假设以下关于堆栈的库函数已经给出,unsigned char is empty();检查堆栈是否为空,如果是,返回1;否则返回0. void push (char element);把一个char型的数据element 推入栈顶。
Char pop (); 弹出栈顶的char型数据。
(1) 利用这些库函数设计一个C语言的函数unsigned char isBalanced (char
*string),来检查字符串string中的括号(),[],{}是否平衡,如果平衡,该函数返回1,否则返回0.
(2) 你所设计的函数时间复杂性是多少(假定字符串string 长度为n)?
10、在一棵高度为O(logn)的二叉排序树的结点上存储着浮点数,请用C语言写一个函数来计算一棵树上界于任意俩个浮点数x1和x2 (x1<x2)之间的结点数。说明你的算法的计算复杂度,算法计算复杂度越低越好。
11、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。(8分)
(举例:153=1*1*1+3*3*3+5*5*5) #include<stdio.h> void main() {
int i=0,j=0,k=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
{
if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k))
{ printf("%d",i*100+j*10+k);
printf("\n");
}
}
}
Char pop (); 弹出栈顶的char型数据。
(1) 利用这些库函数设计一个C语言的函数unsigned char isBalanced (char
*string),来检查字符串string中的括号(),[],{}是否平衡,如果平衡,该函数返回1,否则返回0.
(2) 你所设计的函数时间复杂性是多少(假定字符串string 长度为n)?
10、在一棵高度为O(logn)的二叉排序树的结点上存储着浮点数,请用C语言写一个函数来计算一棵树上界于任意俩个浮点数x1和x2 (x1<x2)之间的结点数。说明你的算法的计算复杂度,算法计算复杂度越低越好。
11、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。(8分)
(举例:153=1*1*1+3*3*3+5*5*5) #include<stdio.h> void main() {
int i=0,j=0,k=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
{
if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k))
{ printf("%d",i*100+j*10+k);
printf("\n");
}
}
}