mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-04 19:20:52 +08:00
refactor: Replace poll with pop in Queue and Deque (#415)
This commit is contained in:
@@ -64,7 +64,7 @@ pub fn ArrayQueue(comptime T: type) type {
|
||||
}
|
||||
|
||||
// 出队
|
||||
pub fn poll(self: *Self) T {
|
||||
pub fn pop(self: *Self) T {
|
||||
var num = self.peek();
|
||||
// 队首指针向后移动一位,若越过尾部则返回到数组头部
|
||||
self.front = (self.front + 1) % self.capacity();
|
||||
@@ -115,8 +115,8 @@ pub fn main() !void {
|
||||
std.debug.print("\n队首元素 peek = {}", .{peek});
|
||||
|
||||
// 元素出队
|
||||
var poll = queue.poll();
|
||||
std.debug.print("\n出队元素 poll = {},出队后 queue = ", .{poll});
|
||||
var pop = queue.pop();
|
||||
std.debug.print("\n出队元素 pop = {},出队后 queue = ", .{pop});
|
||||
inc.PrintUtil.printArray(i32, try queue.toArray());
|
||||
|
||||
// 获取队列的长度
|
||||
@@ -131,7 +131,7 @@ pub fn main() !void {
|
||||
var i: i32 = 0;
|
||||
while (i < 10) : (i += 1) {
|
||||
try queue.push(i);
|
||||
_ = queue.poll();
|
||||
_ = queue.pop();
|
||||
std.debug.print("\n第 {} 轮入队 + 出队后 queue = ", .{i});
|
||||
inc.PrintUtil.printArray(i32, try queue.toArray());
|
||||
}
|
||||
|
||||
@@ -32,11 +32,11 @@ pub fn main() !void {
|
||||
std.debug.print("\n队尾元素 peekLast = {}", .{peekLast});
|
||||
|
||||
// 元素出队
|
||||
var pollFirst = deque.popFirst().?.data; // 队首元素出队
|
||||
std.debug.print("\n队首出队元素 pollFirst = {},队首出队后 deque = ", .{pollFirst});
|
||||
var popFirst = deque.popFirst().?.data; // 队首元素出队
|
||||
std.debug.print("\n队首出队元素 popFirst = {},队首出队后 deque = ", .{popFirst});
|
||||
inc.PrintUtil.printQueue(i32, deque);
|
||||
var pollLast = deque.pop().?.data; // 队尾元素出队
|
||||
std.debug.print("\n队尾出队元素 pollLast = {},队尾出队后 deque = ", .{pollLast});
|
||||
var popLast = deque.pop().?.data; // 队尾元素出队
|
||||
std.debug.print("\n队尾出队元素 popLast = {},队尾出队后 deque = ", .{popLast});
|
||||
inc.PrintUtil.printQueue(i32, deque);
|
||||
|
||||
// 获取双向队列的长度
|
||||
|
||||
@@ -96,7 +96,7 @@ pub fn LinkedListDeque(comptime T: type) type {
|
||||
}
|
||||
|
||||
// 出队操作
|
||||
pub fn poll(self: *Self, is_front: bool) T {
|
||||
pub fn pop(self: *Self, is_front: bool) T {
|
||||
if (self.isEmpty()) @panic("双向队列为空");
|
||||
var val: T = undefined;
|
||||
// 队首出队操作
|
||||
@@ -125,13 +125,13 @@ pub fn LinkedListDeque(comptime T: type) type {
|
||||
}
|
||||
|
||||
// 队首出队
|
||||
pub fn pollFirst(self: *Self) T {
|
||||
return self.poll(true);
|
||||
pub fn popFirst(self: *Self) T {
|
||||
return self.pop(true);
|
||||
}
|
||||
|
||||
// 队尾出队
|
||||
pub fn pollLast(self: *Self) T {
|
||||
return self.poll(false);
|
||||
pub fn popLast(self: *Self) T {
|
||||
return self.pop(false);
|
||||
}
|
||||
|
||||
// 访问队首元素
|
||||
@@ -188,11 +188,11 @@ pub fn main() !void {
|
||||
inc.PrintUtil.printArray(i32, try deque.toArray());
|
||||
|
||||
// 元素出队
|
||||
var poll_last = deque.pollLast();
|
||||
std.debug.print("\n队尾出队元素 = {},队尾出队后 deque = ", .{poll_last});
|
||||
var pop_last = deque.popLast();
|
||||
std.debug.print("\n队尾出队元素 = {},队尾出队后 deque = ", .{pop_last});
|
||||
inc.PrintUtil.printArray(i32, try deque.toArray());
|
||||
var poll_first = deque.pollFirst();
|
||||
std.debug.print("\n队首出队元素 = {},队首出队后 deque = ", .{poll_first});
|
||||
var pop_first = deque.popFirst();
|
||||
std.debug.print("\n队首出队元素 = {},队首出队后 deque = ", .{pop_first});
|
||||
inc.PrintUtil.printArray(i32, try deque.toArray());
|
||||
|
||||
// 获取双向队列的长度
|
||||
|
||||
@@ -67,7 +67,7 @@ pub fn LinkedListQueue(comptime T: type) type {
|
||||
}
|
||||
|
||||
// 出队
|
||||
pub fn poll(self: *Self) T {
|
||||
pub fn pop(self: *Self) T {
|
||||
var num = self.peek();
|
||||
// 删除头结点
|
||||
self.front = self.front.?.next;
|
||||
@@ -111,8 +111,8 @@ pub fn main() !void {
|
||||
std.debug.print("\n队首元素 peek = {}", .{peek});
|
||||
|
||||
// 元素出队
|
||||
var poll = queue.poll();
|
||||
std.debug.print("\n出队元素 poll = {},出队后 queue = ", .{poll});
|
||||
var pop = queue.pop();
|
||||
std.debug.print("\n出队元素 pop = {},出队后 queue = ", .{pop});
|
||||
inc.PrintUtil.printArray(i32, try queue.toArray());
|
||||
|
||||
// 获取队列的长度
|
||||
|
||||
@@ -30,8 +30,8 @@ pub fn main() !void {
|
||||
std.debug.print("\n队首元素 peek = {}", .{peek});
|
||||
|
||||
// 元素出队
|
||||
var poll = queue.popFirst().?.data;
|
||||
std.debug.print("\n出队元素 poll = {},出队后 queue = ", .{poll});
|
||||
var pop = queue.popFirst().?.data;
|
||||
std.debug.print("\n出队元素 pop = {},出队后 queue = ", .{pop});
|
||||
inc.PrintUtil.printQueue(i32, queue);
|
||||
|
||||
// 获取队列的长度
|
||||
|
||||
Reference in New Issue
Block a user