1,链表的插入和删除之所以是O(N),是因为要用O(N)顺序查找到插入点的位置,插入时间为O(N)
顺序表找到插入点的时间为O(1),但要把后面的元素全部后移一位,复杂度为O(N)。
查找所需时间比移动短多了,所以虽然复杂度都是O(N),但是链表更适合插入删除
2,顺序队列由于假溢出,队列为空时front和rear同时为-1;在插入第一个数据时,二者下标同时改变;所以采用循环队列解决

front==rear为队空条件;所以解决冲突,(rear+1)%maxsize==front为队满条件;由于是循环队列需要取余来获得其下标
注意:rear的下标为最后一个数据元素再+1;
队长:(rear-front+maxsize)%maxsize 入队:(rear+1)%maxsize 出队同理

博客主要分析了链表和顺序表在插入删除操作上的复杂度。链表插入删除复杂度为O(N),更适合该操作;顺序表查找插入点快,但移动元素复杂度为O(N)。还介绍了顺序队列的假溢出问题,以及循环队列的队空、队满条件和队长计算等内容。

1428

被折叠的 条评论
为什么被折叠?



