package queue
import (
"github.com/spf13/cast"
)
func main() {
}
type LinkedQueue struct {
*Node
Size int
}
type Node struct {
head *Node
tail *Node
elem interface{}
next *Node
}
func Init() *LinkedQueue {
return &LinkedQueue{&Node{}, 0}
}
func (this *LinkedQueue) GetSize() int {
return this.Size
}
func (this *LinkedQueue) IsEmpty() bool {
return this.Size == 0
}
func (this *LinkedQueue) EnQueue(elem interface{}) {
if this.tail == nil {
this.tail = &Node{elem: elem}
this.head = this.tail
} else {
this.tail.next = &Node{elem: elem}
this.tail = this.tail.next
}
this.Size++
}
func (this *LinkedQueue) DeQueue() interface{} {
if this.IsEmpty() {
panic("out of range")
}
retNode := this.head
this.head = this.head.next
retNode.next = nil
if this.head == nil {
this.tail = nil
}
this.Size--
return retNode.elem
}
func (this *LinkedQueue) GetFront() interface{} {
if this.IsEmpty() {
panic("out of range ")
}
return this.head.elem
}
func (this *LinkedQueue) ToString() string {
s := "queue front "
cur := this.head
for i := 0; i < this.Size; i++ {
s += cast.ToString(cur.elem) + "->"
cur = cur.next
}
s += "tail"
return s
}
近期热议
推荐标签 标签
-
运维
148 引用 • 257 回帖 • 2 关注
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
-
架构
139 引用 • 441 回帖
我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。
-
abitmean
• 14 关注
有点意思就行了
-
SMTP
4 引用 • 18 回帖 • 582 关注
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
-
FlowUs
1 引用 • 4 关注
FlowUs.息流 个人及团队的新一代生产力工具。
让复杂的信息管理更轻松、自由、充满创意。
-
心情
59 引用 • 369 回帖
心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。
-
正则表达式
31 引用 • 94 回帖
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。
-
SEO
35 引用 • 200 回帖 • 15 关注
发布对别人有帮助的原创内容是最好的 SEO 方式。
-
博客
270 引用 • 2386 回帖 • 1 关注
记录并分享人生的经历。
-
PWA
14 引用 • 69 回帖 • 119 关注
PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。
-
钉钉
15 引用 • 67 回帖 • 378 关注
钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。
-
链滴
126 引用 • 3621 回帖
链滴是一个记录生活的地方。
记录生活,连接点滴
-
App
90 引用 • 383 回帖
App(应用程序,Application 的缩写)一般指手机软件。
-
React
192 引用 • 291 回帖 • 445 关注
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
-
Quicker
16 引用 • 68 回帖
Quicker 您的指尖工具箱!操作更少,收获更多!
-
Oracle
103 引用 • 126 回帖 • 454 关注
Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。
-
设计模式
198 引用 • 120 回帖
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
-
Postman
4 引用 • 3 回帖 • 1 关注
Postman 是一款简单好用的 HTTP API 调试工具。
-
宕机
13 引用 • 82 回帖 • 32 关注
宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。
-
脑图
21 引用 • 58 回帖
脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。
-
书籍
76 引用 • 390 回帖
宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”
-
CSS
180 引用 • 446 回帖 • 3 关注
CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。
-
负能量
85 引用 • 1192 回帖 • 461 关注
上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)
-
JRebel
26 引用 • 78 回帖 • 618 关注
JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。
-
Spark
74 引用 • 46 回帖 • 549 关注
Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。
-
Telegram
5 引用 • 35 回帖 • 1 关注
Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。
-
Vditor
308 引用 • 1657 回帖 • 1 关注
Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于