C 语言双端队列2025年1月7日 | 阅读 8 分钟 在 C 语言中,Deque(双端队列)是一种允许从左端和右端进行插入和删除的队列数据结构。 ![]() 我们可以从上图的双端队列中看到,当我们在后端添加一个元素时,R 向右移动;当我们在后端删除一个元素时,R 向左移动。 同样地,当元素从前端删除时,F 向右移动;当元素添加到前端时,F 向左移动。 双端队列操作双端队列支持四种操作。 1. 添加尾部元素 它用于从尾部添加一个元素。 2. 删除尾部元素 它用于从尾部删除一个元素。 3. 添加头部元素 它用于从头部添加一个元素。 4. 删除头部元素 它用于删除头部的一个元素。 我们将使用循环数组来实现双端队列。 双端队列的添加尾部元素操作如果 te 的值大于数组的大小,将显示消息“队列已满”。否则,R 的值将增加 R=(R+1)%Size,并将元素添加到数组中 R 的新位置。最后,te 的值将增加1。 在这种情况下,数组中的元素总数由变量 te 维护。添加元素时,te 的值增加1。删除元素后,te 的值减少1。 程序 让我们以一个例子来演示 C++ 中双端队列的添加尾部元素操作。 输出 Item 10 added to the queue at position 0 Queue contents: 10 双端队列的删除尾部元素操作如果 te 的值为0,我们将显示消息队列为空;否则,我们将检查 R 的值是否为-1,如果是,我们将初始化 R=size-1。之后,我们将显示它并在删除元素后将 R 和 te 减1。 程序 让我们以一个例子来演示 C++ 中双端队列的删除尾部元素操作。 输出 Item 42 added to the queue at position 0 Number Deleted From Rear End = 42 Queue contents: 双端队列的添加头部元素操作当从前端添加元素时,我们首先检查 te 的值是否等于数组大小,然后显示消息。如果不是,则队列已满,我们将检查 F 的值是否为 0,如果是,则将其初始化为size-1;否则,将其减1。之后,将元素添加到数组中元素 F 的新位置,然后将 te 的值增加1。 程序 让我们以一个例子来演示 C++ 中双端队列的添加头部元素操作。 输出 Item 42 added to the front end of the queue at position 9 Queue contents: 42 双端队列的删除头部元素操作在删除前端元素时,我们首先检查 te 的值是否等于 0,在这种情况下将显示消息“队列为空”。如果不是,将被删除的元素将显示在屏幕上。之后,我们将 F 的值增加 F=(F+1)%Size,然后将 te 的值减少1。 程序 让我们以一个例子来演示 C++ 中双端队列的删除头部元素操作。 输出 Item 42 added to the front end of the queue at position 9 Number Deleted From Front End = 42 Queue contents: 实现循环数组的双端队列程序这是一个使用大小为 7 的循环数组实现的双端队列的示例 C 程序。 输出 运行时案例 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 1 Enter a number: 10 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 3 Enter a number: 5 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 1 Enter a number: 20 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 5 Deque Elements: 5 10 20 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 2 Number Deleted From Rear End = 20 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 4 Number Deleted From Front End = 5 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 5 Deque Elements: 10 1. Add Rear 2. Delete Rear 3. Add Front 4. Delete Front 5. Display 6. Exit Enter Choice: 6 下一主题C 语言编程测试 |
我们请求您订阅我们的新闻通讯以获取最新更新。