node_stack—string版本
#include <iostream>
using namespace std;
struct node
{
int data;
node *prior;
};
class stack_node
{
public:
node *base;
node *top;
stack_node()
{
base=top=new node;
top->prior=NULL;
}
bool empty()
{
if(base==top)
return true;
else
return false;
}
void push(int e)
{
node *p=new node;
p->data=e;
p->prior=top;
top=p;
}
void pop()
{
if(base==top)
return ;
node *p=top;
top=p->prior;
delete p;
}
int gettop()
{
if(base!=top)
return top->data;
else
return 0;
}
};
node_queue—int版本
#include <iostream>
using namespace std;
struct node
{
int data;
node *next;
};
class queue_node
{
public:
node *front;
node *rear;
queue_node()
{
front=rear=new node;
front->next=NULL;
}
bool empty()
{
if(front==rear)
return true;
else
return false;
}
void push(int e)
{
node *p=new node;
p->data=e;p->next=NULL;
rear->next=p;
rear=p;
}
void pop()
{
if(empty())
return;
node *p=front->next;
front->next=p->next;
if(rear==p)
rear=front;
delete p;
}
int getfront()
{
if(!empty())
return front->next->data;
else
return 0;
}
};