首页 > 其他分享 >10月5日总结

10月5日总结

时间:2023-10-06 14:22:37浏览次数:30  
标签:总结 10 elements 队列 fmt queue value Queue

四、用go语言,重写 ENQUEUE 和 DEQUEUE 的代码,使之能处理队列的下溢和上溢。
文心一言:

在 Go 语言中,我们可以使用切片来实现队列。下面是如何实现 ENQUEUE 和 DEQUEUE 操作,同时处理队列的下溢和上溢的情况:

package main

import "fmt"

type Queue struct {
elements []interface{}
}

// 创建一个新的队列
func NewQueue() *Queue {
return &Queue{}
}

// ENQUEUE 操作,向队列尾部添加一个元素
func (q *Queue) Enqueue(value interface{}) {
q.elements = append(q.elements, value)
}

// DEQUEUE 操作,从队列头部移除一个元素
func (q *Queue) Dequeue() (interface{}, error) {
if len(q.elements) == 0 {
return nil, fmt.Errorf("队列下溢")
}
value := q.elements[0]
q.elements = q.elements[1:]
return value, nil
}

func main() {
queue := NewQueue()
// 测试 ENQUEUE 操作
queue.Enqueue(1)
queue.Enqueue(2)
queue.Enqueue(3)
fmt.Println(queue.elements) // 输出: [1 2 3]
// 测试 DEQUEUE 操作
value, err := queue.Dequeue()
if err != nil {
fmt.Println(err)
} else {
fmt.Println(value) // 输出: 1
fmt.Println(queue.elements) // 输出: [2 3]
}
// 测试下溢情况
value, err = queue.Dequeue()
if err != nil {
fmt.Println(err) // 输出: 队列下溢
} else {
fmt.Println(value)
}
}

这个程序中,我们创建了一个名为 Queue 的结构体,它包含一个 elements 切片来存储队列的元素。Enqueue 方法在 elements 切片的尾部添加一个元素,Dequeue 方法从 elements 切片的头部移除一个元素。如果 Dequeue 方法在尝试移除元素时发现队列为空,它将返回一个错误,表示队列下溢。

在这里插入图片描述

在这里插入图片描述
讯飞星火:

要处理队列的下溢和上溢,我们可以在 ENQUEUE 和 DEQUEUE 函数中添加一些条件判断。当队列为空时,将元素添加到队列;当队列满时,从队列中删除一个元素。以下是使用 Go 语言重写的代码:

package main

import "fmt"

type Queue []int

func (q Queue) Enqueue(v int) {
if len(
q) < cap(q) {
q = append(q, v)
} else {
for i := len(
q); i > 0; i-- {
(q)[i-1] = (q)[i-2]
}
(*q)[0] = v

标签:总结,10,elements,队列,fmt,queue,value,Queue
From: https://www.cnblogs.com/lmyy/p/17744541.html

相关文章

  • 10月4日总结
    在deepin23上编译gcc13.2deepin20素以软件版本过老被人诟病,换成最新的deepin23之后情况大有好转,但是gcc版本为11.2,鄙人对此仍有意见,所以特意研究了如何编译一份较新的gcc来用。1.下载源码包http://mirrors.ustc.edu.cn/gnu/gcc/我相关在中科大镜像站下载东西,选择13.2版本的压......
  • 深度学习模型部署与优化:策略与实践;L40S与A100、H100的对比分析
    ★深度学习、机器学习、生成式AI、深度神经网络、抽象学习、Seq2Seq、VAE、GAN、GPT、BERT、预训练语言模型、Transformer、ChatGPT、GenAI、多模态大模型、视觉大模型、TensorFlow、PyTorch、Batchnorm、Scale、Crop算子、L40S、A100、H100、A800、H800随着生成式AI应用的迅猛发展......
  • 板刷2023.10.04
    CF1878F.VasilijeLovesNumberTheory题解:约数个数+取模性质对\(n\)质因子分解得到,\(n=p_1^{\alpha_1}p_2^{\alpha_2}...p_k^{\alpha_k}\)那么显然\(d(n)=(\alpha_1+1)\times(\alpha_2+1)...(\alpha_k+1)\)根据题意可以得到:\(n\%d(n)=0\)的时候一定......
  • 202310061227-《心得:低版本mysql配置一,些轮子插件》
    1.对于mysql5.7.42,驱动(connector)选择:5.1.46。2.测试链接时:useSSL=true&enabledTLSProtocols=TLSv1.1 驱动链接字符串上要拼接上。3.驱动链接字符串:高版本mysql,意味着高版本connector,选>=8;低版本,选择5.x;               高版本mysql,com.my......
  • 2023-10-02-周一
    吾日三省吾身titlecontent简单评价这一天只能说差强人意今天运动了吗?0学习还满意否0.5会不会又emo了0今日学习任务titlecontent学习ELF文件格式0.2安卓开发0呃..上午才是搞笑的我很早起来,洗了一个澡..然后还是很困...所以......
  • 2023-10-05-周五
    运动,,,貌似不可能了,,,哈哈我发现,,最近的睡眠好像真还有点小离谱了基本上都是闹钟一响,然后差不多8:30的样子,然后咪一咪然后继续睡,差不多9:20~9:40的样子,,就内心挣扎,愧疚的醒过来然后洗漱一下,然后杂七杂八看一下手机然后....就差不多10:00的样子然后懒懒散散的去实验......
  • 38-10
    将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A表中含有序号为奇数的元素,B表含有序号为偶数的元素,且保持相对顺序不变应好好分析指针变化,可减少冗余代码!!!#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}L......
  • cf1110D. Jongmah
    cf1110D.Jongmah如果能够发现一点转化的话就简单很多比如说最后的答案里出现了三个(a,a+1,a+2),我们可以将它看作是(a,a,a),(a+1,a+1,a+1),(a+2,a+2,a+2)也就是每种三元组(除了(a,a,a))最多只会出现两次那么每种数最多有6个是个其它数组成三元组。直接dp即可#include<cstdio>#......
  • 读书笔记(20231006)
    80%的时间,投入到你最感兴趣的事情当中,20%的时间探索人生边界。身份标签、能力标签、市场标签三个维度出发,带大家重新梳理自己的定位,让大家的标签自带“吸金力”。学习了之后,一定要有输出。这个“输出”可以是写一篇完整的学习笔记,分享给别人听,也可以是,把课上的方法用起来......
  • pta三次实验的总结
    第一次pta作业 在pta第一次作业,因为是第一次作业所以大体是比较容易,但是也有几个要注意的点,就是两个double的值相加减相乘的值与实际值会有一定的误差,误差大小为0.0000001,所以在写pta的三角形的判断类型的时候会有等腰三角形测试答案错误,不能通过测试点,但是在测试直角三角形时......