25a9dd19b78269f23ee787e147827064234617665b4811022ec6111aa9fd5ffe6628db4e77f7e38f3b


#include <string.h>
#include <iostream>

class lnode{
public:
    char *data;
    lnode *next;
    lnode() : data(nullptr), next(nullptr) {}
    lnode(const char *str) : data(nullptr), next(nullptr) {
        data = new char[strlen(str) + 1];
        strcpy(data, str);
    }
    ~lnode() {
        delete data;
    }
};

class Quene {
private:
    int siz;
    lnode *head;
    lnode *tail;
public:
    Quene() : siz(0), head(nullptr), tail(nullptr) {}
    auto enq(const char *str) {
        if (head == nullptr) {
            tail = head = new lnode(str);
            return siz = 1;
        }
        lnode *newt = new lnode(str);
        tail->next = newt;
        tail = newt;
        return ++siz;
    }
    auto deq() {
        if (head == nullptr)
            return -1;
        lnode *newh = head->next;
        delete head;
        head = newh;
        if (siz == 1)
            tail = nullptr;
        return --siz;
    }
    auto const size() {
        return siz;
    }
    void const prtq() {
        lnode *p;
        for (p = head; p != nullptr; p = p->next)
            std::cout << p->data << ' ';
        std::cout << '\n';
    }
    ~Quene() {
        lnode *p, *next;
        for (p = head; p != nullptr; p = next) {
            next = p->next;
            delete p;
        }
    }
};

int main() {
    Quene myqq;
    myqq.enq("abc");
    myqq.enq("def");
    myqq.enq("123");
    myqq.enq("456");
    myqq.deq();
    myqq.prtq();
}


깃쁑이... 클래스... 만들줄안다... 헤헤헤...