Java基础篇

Number one : 测试素数的一个简单程序

boolean IsPrime(int num){
	boolean isPrime = true; 
	num = 14;
	for(int i=2; i <= num/2; i++) { 
		if((num % i) == 0) { 
		    isPrime = false; 
		    break; 
		} 
	} 
	    return isPrime;
}


Number two :  Stack的类,实现整数的堆栈

class Stack { 
	private int stck[]; 
	private int tos; 
// Initialize top-of-stack 
	Stack(int num ) { 
		stck = new int[num];
		tos = -1; 
	} 
	
	Stack() { 
		stck = new int[10];
		tos = -1; 
	}
// Push an item onto the stack 
	void push(int item) { 
		if(tos==stck.length - 1) 
			System.out.println("Stack is full,please attention stackflow"); 
		else 
			stck[++tos] = item; 
	} 
// Pop an item from the stack 
int pop() { 
	if(tos < 0) { 
		System.out.println("Stack underflow."); 
		return 0; 
	} 
	else 
		return stck[tos--]; 
	} 

调用代码为:

public static void main(String args[]) { 
		Stack mystack1 = new Stack(); 
		Stack mystack2 = new Stack(); 
		// push some numbers onto the stack 
		for(int i=0; i<10; i++) mystack1.push(i); 
		for(int i=10; i<23; i++) mystack2.push(i); 
		// pop those numbers off the stack 
		System.out.println("Stack in mystack1:"); 
		for(int i=0; i<10; i++) 
		System.out.println(mystack1.pop()); 
		System.out.println("Stack in mystack2:"); 
		for(int i=0; i<10; i++) 
		System.out.println(mystack2.pop()); 
		} 

Number three :  递归习惯问题:之前习惯用的递归代码顺序是先写处理代码,后递归调用。不过要适应用先递归调用,而后再是写处理代码

情况一:先递归调用,而后再是写处理代码:

class RecTest { 
int values[]; 
RecTest(int i) { 
values = new int[i]; 
} 
// display array – recursively 
void printArray(int i) { 
if(i==0) return; 
else printArray(i-1);   //先递归调用,而后再是写处理代码
System.out.println("[" + (i-1) + "] " + values[i-1]); 
} 
} 
class Recursion2 { 
public static void main(String args[]) { 
RecTest ob = new RecTest(10); 
int i; 
for(i=0; i<10; i++) ob.values[i] = i; 
ob.printArray(10); 
} 
} 
情况二:先写处理代码,后递归调用

例子是之前写过的层次遍历二叉树:

template <class Elem>
 2 void level(BinNode<Elem>* subroot) 
 3 {
 4      AQueue<BinNode<Elem>*> Q;
 5      Q.enqueue(subroot);
 6      while(!Q.isEmpty())
 7       {
 8      BinNode<Elem>* temp;
 9           Q.dequeue(temp);  //返回temp指针是Q队列的表头的二叉树中的结点,而temp指针的结点已经被dequeue(出列)
10           if(temp != NULL) 
11             {
12               Print(temp);
13               if(temp->left!=NULL)    Q.enqueue(temp->left());
14               if(temp->right!=NULL)   Q.enqueue(temp->right());
15              }
16        }
17 }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值