正在加载图片...
34队列 1队列定义 类似于排队机制的结构,队列是特殊的线性表, 节点的插入仅限于在表尾进行,节点的删除仅限于在表头进行 队列特点 特点 (1)对队列的操作在表的两端进行 (2)仅在队尾加入节点——入队 enqueue (3)仅在队首移出节点——出队 dequeue ◆(4)遵循“先进先出”的原则—FIFO 队列的顺序存储结构及运算 2.用数组实现队列 (1)定义 typedef struct queue type i elemtype data MAXNUMI int front: int rear: queue type; (2)入队与出队 用循环数组实现队列 void enqueue(queue, new one) i if((queue->rear+1)%MAXNUM== queue->front)error(1) else queue->data queue->rear new one queue->rear=(queue->rear +1)% MAXNUM elemtype dequeue(queue) i elemtype out; queue->front) error(2); else out =queue->datalqueue->front queue->front=(queue->front +1)% MAXNUM; return out; 思考:数组Q0,41 front=l, rear=39 } 3.4 队列 1.队列定义 类似于排队机制的结构, 队列是特殊的线性表, 节点的插入仅限于在表尾进行,节点的删除仅限于在表头进行. 队列特点 ◼ 特点: ◆ (1)对队列的操作在表的两端进行 ◆ (2)仅在队尾加入节点——入队 enqueue ◆ (3)仅在队首移出节点——出队 dequeue ◆ (4)遵循“先进先出”的原则——FIFO 队列的顺序存储结构及运算 2. 用数组实现队列 (1)定义 typedef struct queue_type { elemtype data[MAXNUM]; int front; int rear; }queue_type; (2)入队与出队 用循环数组实现队列 void enqueue(queue, new_one) { if( (queue->rear + 1) % MAXNUM = = queue->front ) error(1); else{ queue->data[queue->rear] = new_one; queue->rear = (queue->rear +1) % MAXNUM; } } elemtype dequeue(queue) { elemtype out; if( queue->rear = = queue->front ) error(2); else{ out =queue->data[queue->front]; queue->front = (queue->front +1) % MAXNUM; } return out; } 思考:数组 Q[0,4] 1. front=1, rear=3 2. front=3, rear=1
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有