首页 > 其他分享 >(转)go语言-golang基础-queue队列和stack堆栈

(转)go语言-golang基础-queue队列和stack堆栈

时间:2023-02-07 09:33:46浏览次数:36  
标签:golang fmt len queue go stack append

原文:https://www.cnblogs.com/malukang/p/12708850.html

1. queue队列

队列(queue), 是一种FIFO(First In First Out)先进先出的线性表。通常用数据或者链表来实现队列。 队列只允许在后端插入,前端删除操作。
性质:
先进先出

复制代码
package main

import "fmt"

func main() {
    //队列
    //先进先出
    queue := []string{}
    //push
    //append
    queue = append(queue, "a", "b")
    queue = append(queue, "c")
    //pop
    x := queue[0]
    queue = queue[1:]
    fmt.Println("1: ", x)

    x = queue[0]
    queue = queue[1:]
    fmt.Println("2: ", x)

    x = queue[0]
    queue = queue[1:]
    fmt.Println("3: ", x)

}

/*
$ go run queue.go
1:  a
2:  b
3:  c
*/
复制代码

 

2. stack堆栈

先进后出

示例:

复制代码
package main

import "fmt"

func main() {
    //堆栈
    //先进后出
    stack := []string{}
    //push
    //append
    stack = append(stack, "a")
    stack = append(stack, "b")
    stack = append(stack, "c")
    //pop
    //后面移除
    x := stack[len(stack)-1]
    stack = stack[:len(stack)-1]
    fmt.Println("1: ", x)

    x = stack[len(stack)-1]
    stack = stack[:len(stack)-1]
    fmt.Println("2: ", x)

    x = stack[len(stack)-1]
    stack = stack[:len(stack)-1]
    fmt.Println("3: ", x)
}
/*
$ go run stack.go
1:  c
2:  b
3:  a

*/
复制代码

标签:golang,fmt,len,queue,go,stack,append
From: https://www.cnblogs.com/liujiacai/p/17097304.html

相关文章

  • 【Django drf】视图层大总结 ViewSetMixin源码分析 路由系统 action装饰器
    目录九个视图子类视图集继承ModelViewSet类写五个接口继承ReadOnlyModelView编写2个只读接口ViewSetMixin源码分析查找as_view方法setattr修改对象的属性fromrest_framew......
  • django笔记 - 2023/2/6
        admin是django自带的后台管理系统。Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制。......
  • go加解密学习笔记
    1、概念加解密分为以下几种对称加密,加解密都使用的是同一个密钥,其中的代表就是AES、DES非对加解密,加解密使用不同的密钥,其中的代表就是RSA签名算法,如MD5、S......
  • 工厂模式-go语言实现
    一、理论知识工厂模式的作用就是用来创建对象,细分为三种:简单工厂、工厂方法、抽象工厂。1.1应用场景工厂模式一般用于对于不同的场景,需要创建不同的对象,但是这些对象实......
  • 谷歌关键词是怎么排名的?google关键词优化
    本文主要分享关于谷歌排名算法的一些分析以及谷歌关键词优化的细节。本文由光算创作,有可能会被修改和剽窃,我们佛系对待这种行为吧。谷歌关键词排名是指确定网站在搜索引擎结......
  • Go Printf 转义字符
    转义字符含义%d十进制整数%x、%o、%b十六进制、八进制、二进制整数%f、%g、%e浮点数:如3.141592、3.141572653589793、3.141593e+00%t布尔型:true或......
  • Dajngo开发常见问题汇总 -- Serializer篇
    常见问题一、Django枚举类型扩展方法(Model.get_FOO_display())问题#标准的枚举写法EXPERIENCE_CHOICES=((1,'应届毕业生'),(2,'3年及以下'),.........
  • Dajngo开发常见问题汇总 -- Model设计篇
    verbose_name可以作为第一个参数传入,使书写更加工整和有序;name=models.CharField('类别名',default="",max_length=30,help_text="类别名")请尽量为每个model和f......
  • 【转】Is there a better dependency injection pattern in golang?
     https://coolshell.cn/articles/9949.html https://dotblogs.com.tw/daniel/2018/01/17/140435 https://github.com/golobby/container https://blog.drewolson.......
  • (转)「Golang」for range 使用方法及避坑指南
    原文:https://blog.csdn.net/qq_37005831/article/details/114296008前言循环控制结构是一种在各种编程语言中常用的程序控制结构,其与顺序控制结构、选择控制结构组成了程......