分别针对8节点和16节点的环形网络,在每个节点上增加额外一条边并保持节点数不变的情况下(度为3),一共有多少种方法
环形边是通过其共享曲面按顺序连接的多边形边的路径。通过环形边选择,可以在多边形网格中选择多条边,而不必逐个选择每条边。
选择环形边
在场景视图中,在多边形网格上单击鼠标右键,然后选择“边”(Edge)。
在想要显示环形边的地方,单击多边形网格的某条边。
按住 Shift 键并双击沿同一环形路径的平行边。
环形路径中的所有边都会被选中。
选择部分环形边
在场景视图中,在多边形网格上单击鼠标右键,然后选择“边”(Edge)。
在想要开始选择环形边的位置,单击多边形网格的边。
按住 Shift 键并双击沿同一环形路径的另一条边。
会选择这两条边之间的所有边。
具体代码实现
public class CircularQueue<T> {
//属性
private int front;//队头指针
private int rear;//队尾指针
private int maxSize;//队列最大容量
private int size;//队列数据个数
private Object[] queue;//队列数组
//空参构造器
public CircularQueue() {
front = -1;
rear = -1;
maxSize = 16;
}
//指定容量构造器
public CircularQueue(int maxSize) {
this();
this.maxSize = maxSize;
}
//获取队列数据个数
public int getSize() {
return size;
}
//添加数据
public void add(T t) {
//懒汉式:要添加数据了才创建数组
if (queue == null) {
queue = new Object[maxSize];
}
//判断队列是否已满
if (size >= maxSize) {
throw new RuntimeException("队列已满");
}
//走到这说明队列没满,考虑边界情况
if (rear == maxSize - 1) {
rear = -1;//循环到队伍开头,形成闭环
}
//真正添加数据的操作
queue[++rear] = t;
//数据个数加一
size++;
}
//弹出数据
public T pop() {
//判断队列是否为空
if (queue == null || queue.length == 0 || size == 0) {
throw new RuntimeException("队列为空");
}
//边界情况
if (front == maxSize - 1) {
front = -1;
}
T t = (T) queue[++front];
queue[front] = null;
size--;
return t;
}
//重写toString()
@Override
public String toString() {
return "CircularQueue{" +
"queue=" + Arrays.toString(queue) +
'}';
}
}