本课主题: 栈的应用 教学目的: 掌握栈的应用方法,理解栈的重要作用 教学重点: 利用栈实现行编辑,利用栈实现表达式求值 教学难点: 利用栈实现表达式求值 授课内容: 一、栈应用之一:数制转换 将十进制数转换成其它进制的数有一种简单的方法: 例:十进制转换成八进制:(66)10=(102)8 66/8=8 余 2 8/8=1 余 0 1/8=0 余 1 结果为余数的逆序:102 。先求得的余数在写出结果时最后写出,最后求出的余数最先写出,符合栈的先入后出性质,故可用栈来实现数制转换: void conversion() { pSqStack S. SElemType e. int n. InitStack(&.S). printf("Input a number to convert to OCT:\n"). scanf("%d",&.n). if(n<0) { printf("\nThe number must be over 0."). return.} if(!n) Push(S,0). while(n){ Push(S,n%8). n=n/8. } printf("the result is: "). while(!StackEmpty(*S)){ Pop(S,&.e). printf("%d",e).} }