#include <stdio.h>
#include <iostream>
class Node
{
public:
Node(int data):_data(data), _after(NULL){}
~Node(){}
int _data;
Node* _after;
};
Node* g_list;
const Node* end(const Node* list){
const Node* ptr = list;
while(ptr->_after != NULL){
ptr = ptr->_after;
}
return ptr;
}
void pushback(int data){
if (g_list == NULL) {
g_list = new Node(data);
} else {
Node* end_node = const_cast<Node*>(end(g_list));
end_node->_after = new Node(data);
}
}
int popfront(){
if (g_list != NULL)
{
Node* front_node = g_list;
g_list = g_list->_after;
int data = front_node->_data;
delete front_node;
return data;
}
}
void print(const Node* list){
if(list == NULL)
{
std::cout << "Empty" << std::endl;
return;
}
const Node* ptr = list;
while(ptr != NULL)
{
std::cout << "data: " << ptr->_data << ": ";
ptr = ptr->_after;
}
std::cout << std::endl;
}
int main(int argc, char const *argv[])
{
for (int i = 0; i < 10; ++i)
{
pushback(i);
}
print(g_list);
for (int i = 0; i < 10; ++i)
{
popfront();
print(g_list);
}
return 0;
}
屏幕打印结果