常用数据结构的简要总结
class ArrayStack<T> {
private T data[];
private int maxSize;
private int top;
//构造函数初始化
public ArrayStack(int maxSize) {
this.maxSize = maxSize;
this.data = (T[]) new Object[maxSize];
this.top = -1;
}
//判空
public boolean isEmpty() {
return top <= -1;
}
//判满
public boolean isFull() {
return top >= maxSize - 1;
}
//压栈
public boolean push(T value) {
if (isFull()) {
return false;
}
top++;
data[top] = value;
return true;
}
//出栈
public T pop() {
if (isEmpty()) {
return null;
}
T temp = data[top];
data[top] = null;
top--;
return temp;
}
}
class ListQueue<T> {
private List<T> data;
private int length;
//构造函数初始化
public ListQueue() {
this.data = new ArrayList<>();
this.length = 0;
}
//入队
public boolean push(T value) {
length++;
return data.add(value);
}
//出队
public T pop() {
if (data.size() > 0) {
return data.remove(0);
}
return null;
}
}
class ArrayQueue<T> {
private T data[];
private int index;//队尾元素所在的位置
public ArrayQueue(int size) {
this.data = (T[]) new Object[size];
this.index = -1;
}
//入队
public boolean push(T value) {
if (index==data.length-1){
return false;
}
index++;
data[index] = value;
return true;
}
//出队
public T pop() {
if(index==-1){
return null;
}
T temp = data[0];
move();
return temp;
}
//移动元素
private void move() {
for (int i = 0; i < index; i++) {
data[i] = data[i + 1];
}
index--;
}
}
//循环队列
class ArrayQueueCycle<T> {
private T data[];
private int front;
private int rear;//队尾元素所在的位置
public T[] getData() {
return data;
}
public int getFront() {
return front;
}
public int getRear() {
return rear;
}
public ArrayQueueCycle(int size) {
this.data = (T[]) new Object[size];
this.front = 0;
this.rear = -1;
}
//入队
public boolean push(T value){
if(rear!=-1 && (rear+1)%data.length==front){ //判满
return false;
}
rear=(rear+1)%data.length;
data[rear] = value;
return true;
}
//出队
public T pop(){
if(rear==front){//判空
return null;
}
T temp = data[front];
data[front] = null;
front=(front+1)%data.length;
return temp;
}
}
结点拥有的子树数目称为结点的度
即使某结点只有一个子树,也要区分左右子树
邻接矩阵
邻接表
逆邻接表
原文:https://www.cnblogs.com/yanghanwen/p/12539865.html