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后缀树代码 前缀树和后缀树
URL分享:http://hbruida.cn/article/dodjigh.html