倒置队列

首尾设置标志,从两边往里,互相替换。

应用代码段:

 

ExpandedBlockStart.gif
        void revert(int begin, int end)
        {
            
int t = cakeArray[begin];
            
for (int i = begin,j=end; begin < end ; i++,j--)
            {
                t 
= cakeArray[i];
                cakeArray[i] 
= cakeArray[j];
                cakeArray[j] 
= t;
            }
        }
本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2008/08/20/1272455.html,如需转载请自行联系原作者
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
循环队列的元素倒置,可以通过以下步骤实现: 1. 定义一个循环队列,并初始化队列中的元素。 2. 定义两个指针front和rear,分别指向队列的队首和队尾。 3. 使用while循环,将队首指针front和队尾指针rear向中间移动,同时交换它们所指向的元素,直到它们相遇为止。 4. 输出倒置后的队列元素。 下面是一个示例代码,实现了循环队列元素倒置的功能: ```python class CircularQueue: def __init__(self, capacity): self.capacity = capacity self.queue = [None] * capacity self.front = -1 self.rear = -1 def enqueue(self, data): if (self.rear + 1) % self.capacity == self.front: print("Queue is full\n") elif self.front == -1: self.front = 0 self.rear = 0 self.queue[self.rear] = data else: self.rear = (self.rear + 1) % self.capacity self.queue[self.rear] = data def dequeue(self): if self.front == -1: print("Queue is empty\n") elif self.front == self.rear: temp = self.queue[self.front] self.front = -1 self.rear = -1 return temp else: temp = self.queue[self.front] self.front = (self.front + 1) % self.capacity return temp def display(self): if self.front == -1: print("Queue is empty\n") else: i = self.front while i != self.rear: print(self.queue[i], end=" ") i = (i + 1) % self.capacity print(self.queue[i]) def reverse_queue(queue): front = queue.front rear = queue.rear while front < rear: temp = queue.queue[front] queue.queue[front] = queue.queue[rear] queue.queue[rear] = temp front += 1 rear -= 1 # Test the code queue = CircularQueue(5) queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) queue.enqueue(4) queue.enqueue(5) print("Original queue:") queue.display() reverse_queue(queue) print("Reverse queue:") queue.display() ``` 输出结果为: ``` Original queue: 1 2 3 4 5 Reverse queue: 5 4 3 2 1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值