java后缀树代码 前缀树和后缀树
java后缀表达式实现表达式求值
import java.util.Scanner;
创新互联公司是专业的来宾网站建设公司,来宾接单;提供成都网站制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行来宾网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
import java.util.Stack;
public class 表达式计算 {
private static StackString num = new StackString();//存后缀表达式
private static StackString sign = new StackString();//存入符号
private static StackInteger result = new StackInteger();//放结果
public static void getGroup(String line){//讲字符串转换为后缀表达式
for(int i=0; iline.length(); i++){
char c = line.charAt(i);
if((int)c=48 (int)c=57){//当遇到数字的时候,判断是不是多位数,然后在push进num
int j = i+1;
while(jline.length() (line.charAt(j)=48 line.charAt(j)=57)){
j++;
}
num.push(line.substring(i, j));
i = j-1;
}else if(c == '('){//遇到左括号直接存进num
sign.push(String.valueOf(c));
}else if(c == ')'){//遇到右括号从sign中pop栈顶元素push到num知道遇到'(',然后再pop掉'('
while(!sign.peek().equals("(")){
num.push(sign.pop());
}
sign.pop();
}else{
int n = 0;
if(!sign.empty()){//如果sign中没有元素,直接令n = 0
n = getNum(sign.peek().charAt(0));
}
int m = getNum(c);
if(m = n){//如果当前元素的运算级别比栈顶元素运算级别要高,就直接push进sign
sign.push(String.valueOf(c));
}else{
while(m n){//如果当前运算运算级别比sign栈顶元素运算级别要低,就将sign栈顶元素pop并且push进num,知道不符合条件
num.push(sign.pop());//输入例子2*3+6/3的时候,这里一直报错
if(!sign.empty()){
n = getNum(sign.peek().charAt(0));
}else{
n = 0;
}
}
sign.push(String.valueOf(c));
}
}
}
while(!sign.empty()){
num.push(sign.pop());
}
}
private static int getNum(char c){
int n = 0;
switch(c){
case '+':
case '-':
n = 1;
break;
case '*':
case '/':
n = 2;
break;
}
return n;
}
用JAVA语言编写一个种树的项目
public class Tree {
private int treeId;
private String treeType;// 树种类型
private int count; //种植数量
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getTreeId() {
return treeId;
}
public void setTreeId(int treeId) {
this.treeId = treeId;
}
public String getTreeType() {
return treeType;
}
public void setTreeType(String treeType) {
this.treeType = treeType;
}
}
public class Address {
private int addCode;//地区编码
private String area;//地名
public int getAddCode() {
return addCode;
}
public void setAddCode(int addCode) {
this.addCode = addCode;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
}
import java.util.HashMap;
import java.util.Map;
public class People {
private int userId;
private String username;
private MapString,MapString,Integer map;
/**
* 传入地区和树种,种树成功。保存到map中。
* @param address
* @param tree
*/
public void plantingTrees(String address,Tree tree){
Map map = new HashMap();
map.put(tree.getTreeType(),tree.getCount());
this.map.put(address,map);
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public MapString, MapString, Integer getMap() {
return map;
}
public void setMap(MapString, MapString, Integer map) {
this.map = map;
}
}
java源代码的后缀名是什么
源代码是.java
一般项目里边可以很多类型的文件如:
.jsp
.jar等。
java编打出5行圣诞树,求教每一步详细思想。下面是代码
按照你的要求加详细注释的圣诞树Java程序如下:(编程思想在注释中说明)
public class ShengDanShu2 {
//这个程序的编程思想是利用对for循环变量i的控制达到一层循环代替双层循环的目的
public static void main(String[] args) {
int n=5; //初始化打印圣诞树层数变量n
int a=0; //初始化打印前置空格数变量a
int b=0; //初始化打印星号数变量b
for(int i=1;i =n;i++){ //打印n层圣诞树
if(a!=(n-i)){ //如果前置空格数不等于n-i
System.out.print(" "); //打印一个空格
a++; //前置空格数加一
i=i-1; //i变量减一 目的是固定住i变量不变直到a==n-i
}else if(b!=(2*i-1)){ //如果星号数不等于2*i-1
System.out.print("*"); //打印一个星号
b++; //星号数加一
i=i-1; //i变量减一 目的是固定住i变量不变直到b==2*i-1
}else if(a==(n-i) b==(2*i-1)){//当以上两个条件都满足时,换行初始化a和b为0
System.out.println(); //打印换行
a=0; //对新的一行重新初始化前置空格数变量a
b=0; //对新的一行重新初始化打印星号数变量b
//这里没有控制for循环的i变量减一,因为这时i变量加一,开始新一行。
}
}
}
}
运行结果:
*
***
*****
*******
*********
分享题目:java后缀树代码 前缀树和后缀树
网站地址:http://cdiso.cn/article/dodjigh.html