摘要:
问题描述 在别人的博客上看到起面试经历中的面试题,自己也想实现下,说实话,这道题以前做数据结构的课程设计是做过的,而且这样的题,当时还问了同学的,可是没有自己想,没有上心,到现在也就影响不太深刻了,当时可能也没有很好地理解数组的使用。给定一个整型数组,输入一个数字N时,要输出数组中第N大的数,并把它原来的下标输出来,要求用C语言实现,时间复杂度要求最小,20分钟时间。代码 View Code 1 #include<stdio.h> 2 int main() 3 { 4 int a[10],b[10],temp,n; 5 printf("请输入数组的长度\n"); 阅读全文
摘要:
问题描述 对以逆波兰式的表达式求值。问题分析上一题是把中缀表达式编程逆波兰式,要对逆波兰的表达式的求解就更简单些了。代码View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define STACK_INIT_SIZE 100 4 #define STACKINCREMENT 10 5 typedef int ElemType; 6 typedef struct{ 7 ElemType *base; 8 ElemType *top; 9 int stacksize; 10 }stack; 1... 阅读全文
摘要:
---恢复内容开始----养成良好的习惯,看了下别人写的博客,条理清晰,美观,整洁。借鉴下。问题描述 设表达式有单字母变量和双目四则运算构成,试写一算法,将书写正确的表达式转换为逆波兰表达式。问题分析 要准确地理解逆波兰式,比如表达式a+b*c-a+b/e的逆波兰式是abc*+a-be/+,根据这一点可以理清算法的思路。输入一个表达式,保存到一个数组中,第一个肯定是操作数,依然在数组中,数组下标为0,然后再遍历下一个,当它为运算符是压入栈中,下一个操作数放在数组下标为1的位置,再判断下一个,为运算符,则与栈中已有的运算符进行比较,如果此运算符级别较大,则将此运算符压入栈,反之,将栈中的运算符先 阅读全文