数据结构【Golang实现】---------------队列

该文描述了使用Go语言实现的一个简单的链表队列结构。队列包括了初始化、判断是否为空、入队、出队、查看队首元素以及获取所有元素的方法。Enqueue用于添加元素到队尾,Dequeue则从队头移除元素并返回其值,Peek不移除元素仅查看队首值。
摘要由CSDN通过智能技术生成

目录

1.结构定义

2.IsEmpty()

3.Empty()

4.Enqueue()

5.Dequeue()

6.Peak()

7.Get()


1.结构定义

type Node struct {
	Data int
	Next *Node
}

type Queue struct {
	rear *Node
}

2.IsEmpty()

func (list *Queue) IsEmpty() bool {
	return list.rear == nil
}

3.Empty()

func (list *Queue) Empty() {
	list.rear = nil
}

4.Enqueue()

func (list *Queue) Enqueue(i int) {
	data := &Node{Data: i}
	if list.rear != nil {
		data.Next = list.rear
	}
	list.rear = data
}

5.Dequeue()

func (list *Queue) Dequeue() (int, bool) {
	if list.rear == nil {
		return 0, false
	}
	if list.rear.Next == nil {
		i := list.rear.Data
		list.rear = nil
		return i, true
	}
	currentnode := list.rear
	for {
		if currentnode.Next.Next == nil {
			i := currentnode.Next.Data
			currentnode.Next = nil
			return i, true
		}
		currentnode = currentnode.Next

	}
}

6.Peak()

func (list *Queue) Peak() (int, bool) {
	if list.rear == nil {
		return 0, false
	}
	return list.rear.Data, true
}

7.Get()

func (list *Queue) Get() (res []int) {
	currentnode := list.rear
	for currentnode != nil {
		res = append(res, currentnode.Data)
		currentnode = currentnode.Next
	}
	return res
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值