1.反转单链表(前面的笔记有)
2.栈
数组中留出一个空位出来
package 左乘云.基础班.第2节;
public class 栈 {
public static void main(String[] args) {
Stack stack = new Stack(4);
put(5,stack);
put(1,stack);
put(8,stack);
out(stack);
out(stack);
out(stack);
put(7,stack);
put(1,stack);
put(8,stack);
print(stack);
}
// 进栈
public static boolean put(int num, Stack stack){
if ((stack.tail + 1)%stack.arr.length == stack.head) return false;
else {
stack.arr[stack.tail] = num;
stack.tail = (stack.tail+1)% stack.arr.length;
stack.size++;
return true;
}
}
// 出栈
public static boolean out(Stack stack){
if (stack.tail == stack.head) return false;
else {
stack.head = (stack.head+1)%stack.arr.length;
stack.size--;
return true;
}
}
// 打印栈
public static void print(Stack stack){
if (stack.tail == stack.head) return;
else {
int j = stack.head;
for (int i = 0; i < stack.size; i++){
System.out.println(stack.arr[j]);
j = (j+1)%stack.arr.length;
}
}
}
// 创建栈
public static class Stack{
int max;
int []arr;
int head = 0;
int tail = 0;
int size = 0;
public Stack(int max){
arr = new int[max];
}
}
}