一:定义
①队列:队列是一种操作受限的线性表,其仅允许在表的一端进行插入,在表的另一端删除,其中删除的一端是表头,插入的一端是表尾,向队列中插入新元素为入队,向队列中删除元素为出队,队列是一种先进先出表。
②元素入队(插入)操作是先将队尾指针加1,然后将插入的元素放在队尾处;出队(删除)操作是先将队头指针加1,然后取出队头处的元素;也就是说无论是插入操作还是删除操作,都是指针先加1,然后在操作元素;实际上:队尾指针总是指向当前队列中队尾的元素,而队头指针总是指向当前队列中队头元素的前一个位置。
③队空的条件:font==rear 队满的条件:rear=MaxSize-1
二:队列的顺序存储结构
- typedef struct Queue
- {
- int data[MaxSize]; //存放队中元素
- int font; // 队首指针 实际是队首元素的数组下标
- int rear; // 队尾指针 实际是队尾元素的数组下标
- }Queue,*pQueue;
三:顺序存储结构的基本运算
①初始化队列
②销毁队列
③判断队列是否为空
④进队列(插入数据)
⑤出队列(删除数据)
代码示例:
解密后QQ号为:615947283
四、环形队中实现队列的基本运算
我有个朋友是爵士音乐家,他有次跟我说:如果你不是乐队里最差的演奏者,马上换支乐队。我现在在Spotify工作,在这里我每天都觉得自己是个【狗屁程序员】,也因此我离开了上一家公司,从Spotify重头开始。当我在这里再也感觉不到自己是个【狗屁程序员】的时候,我会选择离开,然后找一个能让我再次感到自己是坨屎的地方。这种策略在我的职业生涯里确实 帮了我大忙。
------译自 Quora