代码:
<pre name="code" class="cpp">#include <iostream>
using namespace std;
#include <cstdlib>
class queueNode
{
public:
int data;
queueNode *next;
queueNode(){
next = NULL;
}
};
class queue
{
private:
queueNode *head,*tail;
public:
queue()
{
head = new queueNode;
head->next = NULL;
tail = new queueNode;
tail = head;
}
~queue()
{
destory(head);
}
void destory(queueNode *&p)
{
if( p == NULL )
return ;
destory(p->next);
delete p;
}
void input(int dx)
{
queueNode *p = new queueNode;
p->data = dx;
p->next = NULL;
tail->next = p;
tail = p;
}
queueNode *getHead()
{
return this->head;
}
const void print(queueNode *head)
{
queueNode *p = head->next;
while(p!=NULL)
{
cout<<p->data<<' ';
p = p->next;
}
}
void insert(int dx,int pos)
{
queueNode *p = head->next;
int count = 1;
while(count++ < pos-1)
p = p->next;
queueNode *q = new queueNode;
q->data = dx;
q->next = p->next;
p->next = q;
}
void del(int pos)
{
queueNode *behind,*front;
behind = head->next;
front = head;
int count = 1;
while(count++ < pos)
{
front = behind;
behind = behind->next;
}
front->next = behind->next;
delete behind;
}
};
int main(){
queue Test;
int i;
int dx;
int size;
cin>>size;
for(i =0 ; i< size; i++)
{
cin>>dx;
Test.input(dx);
}
int pos;
cin>>pos;
Test.del(pos);
Test.print(Test.getHead());
system("pause");
return 0;
}