posts - 57,  comments - 33,  views - 1906
#include <iostream>
#include <stdexcept>

// 定义链表节点结构
struct Node {
    int data;
    Node* next;
};

// 链表队列类
class LinkedListQueue {
private:
    Node* front; // 队头指针
    Node* rear;  // 队尾指针

public:
    // 构造函数,初始化队头和队尾指针
    LinkedListQueue() {
        front = nullptr;
        rear = nullptr;
    }

    // 析构函数,释放所有节点内存
    ~LinkedListQueue() {
        while (!is_empty()) {
            dequeue();
        }
    }

    // 判断队列是否为空
    bool is_empty() const {
        return front == nullptr;
    }

    // 入队操作,将元素添加到队列尾部
    void enqueue(int item) {
        Node* new_node = new Node();
        new_node->data = item;
        new_node->next = nullptr;

        if (rear == nullptr) {
            front = rear = new_node;
        } else {
            rear->next = new_node;
            rear = new_node;
        }
    }

    // 出队操作,移除并返回队头元素
    int dequeue() {
        if (is_empty()) {
            throw std::runtime_error("Queue is empty");
        }

        Node* temp = front;
        int item = temp->data;
        front = front->next;

        if (front == nullptr) {
            rear = nullptr;
        }

        delete temp;
        return item;
    }

    // 查看队头元素但不移除
    int peek() const {
        if (is_empty()) {
            throw std::runtime_error("Queue is empty");
        }
        return front->data;
    }
};

公有(PUBLIC)与私有(private)的访问控制符:

两者都使用在类当中,均包括成员及函数

私有成员及函数(外冷内热)只能在友元函数和类的其他成员函数中使用,不能被外部代码或派生类使用

公有函数(social 达人)

析构函数:

 

 

bool 函数的dilidili:

// 判断队列是否为空
    bool is_empty() {
        return front == nullptr;
    }

在C++中,布尔类型的值可以直接用 true(非零值)和 false(零值)表示。在你提供的代码中,使用 return front == nullptr; 可以直接返回一个布尔值,因为 front == nullptr 这个表达式会得到一个布尔结果,即 truefalse。因此,这种方式更直观和简洁,避免了显式地返回 01。这样的设计使代码更易读和理解。

 

posted on   fafrkvit  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示