用單向鍊錶模擬佇列

2021-10-13 07:16:55 字數 1603 閱讀 4164

讓 rear 指標指向的節點的 next 指標指向新節點,然後讓 rear 指標指向下乙個節點。

每次出佇列時,都讓 font 指標指向 head 節點的下乙個節點。

最後從佇列中彈出 front 節點。

/*

資料結構

佇列 鍊錶

建立乙個鍊錶模擬佇列

實現:資料入佇列、資料出佇列、顯示佇列

*/package main

import (

"errors"

"fmt"

)type node struct

// 資料入佇列

func (this *node) insert(head *node, num int)

// 如果一開始為空鍊錶

if head.next == nil

// 如果不是空鍊錶

this.rear.next = newnode

this.rear = this.rear.next

}// 資料出佇列

func (this *node) pop(head *node) (num int, err error)

this.front = head.next

// 如果只有乙個節點

if this.front == this.rear

// 不止乙個節點

head.next = this.front.next

return this.front.num, nil

}// 顯示資料佇列

func (this *node) show(head *node)

// 迴圈顯示佇列中的每個節點

for

// 繼續掃瞄佇列中的下乙個節點

temp = temp.next }}

func main()

queue := &node{}

// 入佇列

queue.insert(head, 1)

queue.insert(head, 2)

queue.insert(head, 3)

queue.insert(head, 4)

queue.insert(head, 5)

// 顯示佇列

queue.show(head)

// 出佇列

var num int

num, _ = queue.pop(head)

fmt.println("\n出佇列的資料為:", num)

num, _ = queue.pop(head)

fmt.println("\n出佇列的資料為:", num)

// 顯示佇列

queue.show(head)

}

佇列中的資料如下:

1 -> 2 -> 3 -> 4 -> 5 ->

出佇列的資料為: 1

出佇列的資料為: 2

佇列中的資料如下:

3 -> 4 -> 5 ->

用單向鍊錶構造佇列 cpp

用單向鍊錶構造佇列的類,實現佇列的插入 刪除 檢視等基本功能 佇列的特點 先進先出 fifo include using namespace std template class queue t data node next public queue header null len 0 析構函式,保...

模擬單向雙向鍊錶 模擬棧與佇列 KMP

單鏈表模擬單鏈表 include.h using namespace std const int n 1e5 10 int head,ne n e n idx int n head 指向頭節點 ne i 指向第i個節點的下乙個節點 e i 第i個節點的值 idx 儲存當前已經用到了哪個點 void ...

鍊錶模擬佇列

佇列是最基礎的資料結構之一,通過構建鍊錶來模擬佇列,更加清晰的理解佇列的意義。這裡是將佇列作為全域性變數來呼叫,因為不用全域性變數的時候出現好多錯誤,最後還是用了全域性變數。上 include using namespace std include includestruct linklist st...