摘要: #include #include #include using namespace std; //优先级判断 char compare(char opt, char si) { if((opt=='+'||opt=='-')&&(si=='*'||si=='/') return ''; } //判断是否为运算符 bool isOp(char c) { if(c=='+'||c=='... 阅读全文
posted @ 2016-10-08 23:13 KennyRom 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 1、继承的问题 子类是父类的一个扩展,子类可以利用父类的属性与行为,这种情况子类会破坏父类的封装 为了保持父类良好的封装性,设计父类有以下规则: 如果要把某类设计为最终类则需要添加final修饰符,或将此类的构造器声明为private 2、利用组合实现复用 组合就是把旧类的对象当做新类的属性嵌入,并 阅读全文
posted @ 2016-10-05 20:54 KennyRom 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 1、super引用 如果需要在子类中调用父类中被覆盖的部分,则要使用super引用 2、多态 Java引用变量有两种类型,一种是编译时的类型,一种是运行时的类型,如果这两种类型不一致则会出现多态 对象的属性不具有多态性 在进行类型转换时先通过instanceof来判断可不可以强制类型转换 if(va 阅读全文
posted @ 2016-10-02 11:27 KennyRom 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 递归函数被调用时,系统需要一个运行栈。系统的运行栈要保存函数的返回地址,保存调用函数的局部变量,每一层递归调用所需保存的信息构成运行栈的一个工作记录,在没进入下一层递归调用是,系统就会建立一个新的工作记录,并把这个工作记录进栈成为运行栈新的栈顶,每返回一层递归调用,就退栈一个工作记录,因栈顶的工作记 阅读全文
posted @ 2016-09-29 15:43 KennyRom 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 递归定义的算法有两部分: 递归基:直接定义最简单情况下的函数值; 递归步:通过较为简单情况下的函数值定义一般情况下的函数值。 应用条件与准则: (1)问题具有某种可借用的类同自身的子问题描述的性质; (2)某一问题有限步的子问题(也称做本原问题)有直接的解存在。 在计算机中是利用栈来实现recurs 阅读全文
posted @ 2016-09-29 09:13 KennyRom 阅读(425) 评论(0) 推荐(0) 编辑
摘要: Conversion Algorithm 1、操作符栈压入"#"; 2、依次读入表达式的每个单词; 3、如果是操作数则压入操作数栈; 4、如果是操作符,则将操作符栈顶元素与要读入的操作符进行优先级比较 (4.1)如果读入的是 ')',则将操作符栈中的元素压入操作数栈直至遇到 '('; (4.2)如果 阅读全文
posted @ 2016-09-29 08:49 KennyRom 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 中缀表达式的计算 利用两个栈来实现,操作数栈,操作符栈 只支持个位数运算 最后必须输入一个'#' 阅读全文
posted @ 2016-09-28 23:54 KennyRom 阅读(321) 评论(0) 推荐(0) 编辑
摘要: symbols匹配问题 阅读全文
posted @ 2016-09-26 23:10 KennyRom 阅读(475) 评论(0) 推荐(0) 编辑
摘要: //10进制转换为2进制 #include using namespace std; struct Node { int data; Node*next; }; struct LinkStack { Node*top; }; LinkStack*create() { LinkStack*stack = new LinkStack; stack->top = NULL; retu... 阅读全文
posted @ 2016-09-26 21:55 KennyRom 阅读(290) 评论(0) 推荐(0) 编辑
摘要: Description 设计一个求集合交的算法:输入集合A与集合B,求集合A与B之交。集合中的元素为整数(可以用c语言中的int表示),且互不相同。 设计一个求集合交的算法:输入集合A与集合B,求集合A与B之交。集合中的元素为整数(可以用c语言中的int表示),且互不相同。 Input 输入第一行为 阅读全文
posted @ 2016-09-26 20:22 KennyRom 阅读(199) 评论(0) 推荐(0) 编辑