首先是.h文件
#pragma once
#include<iostream>
#include<queue>
using namespace std;
struct quenode
{
int data;
quenode *next;
};
class queuelist
{
public:
queuelist();
~queuelist();
void push(int inserdata);
int back();
int front();
void empty();
void pop();
int size();
void prin();
private:
quenode *head;
};
其次是cpp文件
#include "pch.h"
#include "queuelist.h"
queuelist::queuelist()
{
head = new quenode;
head->next = NULL;
head->data = 0;
}
queuelist::~queuelist()
{ }
void queuelist::push(int inserdata)
{
quenode *phead = head;
quenode *ptemp = new quenode;
ptemp->next = NULL;
ptemp->data = inserdata;
if (head == NULL) head = ptemp;
else
{
ptemp->next = phead->next;
phead->next = ptemp;
}
}
int queuelist::back()
{
quenode *phead = head;
if (head == NULL || head->next == NULL) cout << "链表为空" << endl;
else
{
while (phead->next != NULL)
{
phead = phead->next;
}
}
return phead->data;
}
int queuelist::front()
{
quenode *phead = head;
if (head == NULL || head->next == NULL) cout << "链表为空" << endl;
else
{
phead = phead->next;
}
return phead->data;
}
void queuelist::empty()
{
quenode *phead = head->next;
quenode *pdel = new quenode;
if (head == NULL || head->next == NULL) cout << "链表为空" << endl;
else
{
while (phead->next != NULL)
{
pdel = phead;
phead = phead->next;
pdel->next = NULL;
delete pdel;
}
head->next = NULL;
}
}
void queuelist::pop()
{
quenode *phead = head;
quenode *pdel = new quenode;
if (head == NULL || head->next == NULL) cout << "链表为空" << endl;
else
{
while (phead->next->next != NULL) {
phead = phead->next;
}
pdel = phead->next;
phead->next = NULL;
delete pdel;
}
}
int queuelist::size()
{
quenode *phead = head;
int count = 0;
if (head == NULL || head->next == NULL) cout << "链表为空" << endl;
else
{
while (phead->next != NULL) {
phead = phead->next;
count++;
}
}
return count;
}
void queuelist::prin()
{
if (head == NULL || head->next == NULL) cout << "链表为空" << endl;
else
{
quenode *ptemp = head;
while (ptemp->next != NULL)
{
ptemp = ptemp->next;
cout << ptemp->data << " ";
}
cout << endl;
}
}