用伪代码写一个checkbalance的算法
时间: 2024-05-12 22:18:10 浏览: 8
Sure! 这里是一个简单的checkbalance算法的伪代码:
```
function checkbalance(node):
if node is null:
return 0
left_height = checkbalance(node.left)
if left_height == -1:
return -1
right_height = checkbalance(node.right)
if right_height == -1:
return -1
if(abs(left_height - right_height) > 1):
return -1
return max(left_height, right_height) + 1
```
这个算法的基本思路是递归地检查每个节点的左子树和右子树的高度差是否超过1。如果超过1就返回-1,表示这棵树不是平衡的;否则返回当前节点的高度。在递归的过程中,如果某个子树不平衡了,就直接返回-1,避免做多余的计算。最终,如果根节点的返回值是-1,就表示整棵树不平衡,否则就平衡。
相关问题
用eclipse写一个atm系统
好的,下面是一个简单的ATM系统的JAVA代码,使用Eclipse开发工具:
```java
import java.util.Scanner;
public class ATMSystem {
static Scanner input = new Scanner(System.in);
static double balance = 10000;
public static void main(String[] args) {
System.out.println("Welcome to ATM System!");
while (true) {
System.out.println("Please select an option:");
System.out.println("1. Check Balance");
System.out.println("2. Withdraw");
System.out.println("3. Deposit");
System.out.println("4. Exit");
int option = input.nextInt();
switch (option) {
case 1:
checkBalance();
break;
case 2:
withdraw();
break;
case 3:
deposit();
break;
case 4:
System.out.println("Thank you for using ATM System!");
System.exit(0);
break;
default:
System.out.println("Invalid option. Please select again.");
break;
}
}
}
public static void checkBalance() {
System.out.println("Your balance is " + balance);
}
public static void withdraw() {
System.out.println("Please enter the amount to withdraw:");
double amount = input.nextDouble();
if (amount > balance) {
System.out.println("Insufficient balance. Please try again.");
} else {
balance -= amount;
System.out.println("Successfully withdrawn " + amount + ". Your new balance is " + balance);
}
}
public static void deposit() {
System.out.println("Please enter the amount to deposit:");
double amount = input.nextDouble();
balance += amount;
System.out.println("Successfully deposited " + amount + ". Your new balance is " + balance);
}
}
```
这是一个简单的ATM系统,它允许用户检查余额、取款、存款和退出系统。当用户输入选项时,程序执行相应的操作。
JS写一个简易ATM程序
抱歉,作为AI语言模型,我无法生成交互式的程序。但是,我可以提供一些JS代码示例,可以作为ATM程序的基础:
```javascript
let balance = 1000;
function withdraw(amount) {
if (amount > balance) {
console.log("Insufficient funds!");
} else {
balance -= amount;
console.log(`Withdrawn ${amount}. New balance is ${balance}`);
}
}
function deposit(amount) {
balance += amount;
console.log(`Deposited ${amount}. New balance is ${balance}`);
}
function checkBalance() {
console.log(`Current balance is ${balance}`);
}
// example usage
checkBalance(); // Current balance is 1000
withdraw(500); // Withdrawn 500. New balance is 500
deposit(1000); // Deposited 1000. New balance is 1500
checkBalance(); // Current balance is 1500
```
该程序定义了三个函数:`withdraw`、`deposit`、`checkBalance`,分别用于提取现金、存款和检查余额。程序还定义了一个`balance`变量,用于跟踪账户余额。
在实际的ATM程序中,这些功能需要与用户界面(如屏幕和键盘)和银行账户系统集成。