数据结构考研队列练习题

Q是一个队列,S是一个空栈,实现将队列中的元素逆置的算法。

解析:由于对队列的一系列操作不可能将其中的元素逆置,而栈可以将入栈的元素逆序提取出来,因此我们可以让队列中的元素逐个地出队列,入栈;全部入栈后再逐个出栈,入队列。算法实现内联代码片。

voidInverser(StackS,QueueQ){  while(!QueueEmpty(Q))  {    x=DeQueue(Q);          //队列中全部元素依次出队    Push(S,x);            //元素依次入栈  }  while(!StackEmpty(S))  {    Pop(S,x);            //栈中全部元素依次出栈    EnQueue(Q,x);          //再入队  }  }

小知识:

栈与队列的区别:限定表中插入和删除操作位置的不同

栈和队列的逻辑结构都是线性结构,都可以采用顺序存储或者链式存储

队列的如对顺序和出队顺序是一致的,这是和栈的不同之处

由于再队头做出出队操作,为了便于删除队头元素,故总是选择链头作为队头。

队列先进先出的特性表现再:先进队列的元素先出队列,后进队列的元素后出队列,进队列对应的是插入操作,出队列对应的是删除操作。

预览时标签不可点


转载请注明:http://www.92nongye.com/hxjs/hxjs/204621973.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了