需要的
1、数组中插入:
10个人排成一排,身上都贴好了编号(比如1~10)
你现在想让一个人插入进入,排在 3 的位置
此时需要做什么呢?需要从3号开始,把每个人身上的编号撕下来,
“3号”编号牌交给新来的,“4号”编号牌交给原来的“3号”……
依次直到最后一个人,还要给他做一个新的编号牌:“11号”
2、链表中插入:
10个人手拉手站成一排,但是没有编号,每个人只知道自己的前一个人和后一个人是谁
你现在想让一个人插入进入,排在 3 的位置
此时开始报数,报到“3”的人和前一个人(“2”)松开手,
然后新来的人站进去和原来的“2”位置“3”位置的人拉上手,这三人再看一眼记住自己前后的人是谁,
OK
不会丢失的,current记录了当前位置的值,while循环结束后这一段代码会把当前值赋值过去。循环中不是交换,你可以理解为循环把所有比当前值大的都后移了一位,循环结束后这一段代码会把空出来的位置赋值过去
1、数组中插入:
10个人排成一排,身上都贴好了编号(比如1~10)
你现在想让一个人插入进入,排在 3 的位置
此时需要做什么呢?需要从3号开始,把每个人身上的编号撕下来,
“3号”编号牌交给新来的,“4号”编号牌交给原来的“3号”……
依次直到最后一个人,还要给他做一个新的编号牌:“11号”
2、链表中插入:
10个人手拉手站成一排,但是没有编号,每个人只知道自己的前一个人和后一个人是谁
你现在想让一个人插入进入,排在 3 的位置
此时开始报数,报到“3”的人和前一个人(“2”)松开手,
然后新来的人站进去和原来的“2”位置“3”位置的人拉上手,这三人再看一眼记住自己前后的人是谁,
OK
总结:因为链表增删也需要查询到具体位置。所以数据量小的时候,不能体现出最后的效果
因为一个组内的元素个数可以是超过2个的,减一次不一定是0
SketchUp(草图大师)软件里面的一部分,安装好以后里面有一个文件夹是LayOut,打开里面就是
这里好像搞错了,应该是(tail+1)%len == front;
假如front=0,队列长度len为5,当满队列时tail=4,(4+1)%5=0;
假如front=1,队列长度len为5,当满队列时tail=0,(0+1)%5=1;
假如front=2,队列长度len为5,当满队列时tail=1,(1+1)%5=2;
依次类推……
SketchUp
中文名是草图大师
hash值决定位置后,判断链表中的值即可
LinkedList
实现了Queue
接口。Queue
接口窄化了对LinkedList
的方法的访问权限(即在方法中的参数类型如果是Queue
时,就完全只能访问Queue
接口所定义的方法 了,而不能直接访问LinkedList
的非Queue
的方法),以使得只有恰当的方法才可以使用。BlockingQueue
继承了Queue
接口。你可以把Lis理解为球,Queue理解为篮球,也就是更加具体了,篮球是包含在球之内的。
这句话老师口误了,感谢这位同学。新增删除频率低,查询修改频率高的话,采用顺序表的接口进行操作。