链队列的C++实现

#include<iostream>
using namespace std;

class Point{
	int x;
	Point *next;
	public :
		Point();
		int getx();
		bool setx(int x);
		Point *getnext();
		bool setnext(Point *next);
}; 

Point::Point(){
	x = 0;
	next = NULL;
}

int Point::getx(){
	return x;
}

bool Point::setx(int x){
	this->x = x;
}

Point *Point::getnext(){
	return this->next;
}

bool Point::setnext(Point *next){
	this->next = next;
}

class QueueList{
	Point *front;
	Point *rear;
	int length;
	public:
		QueueList(); 
		bool push(int x);
		bool pop();
		bool emp();
		int size();
		int find();
		int fron();
};

QueueList::QueueList(){
	Point *w = new Point();
	length = 0;
	front = rear = w;
	
}

bool QueueList::push(int x){
	Point *p = new Point();
	rear->setx(x);
	rear->setnext(p);
	rear = p;
	length++;
	return 1;
}

bool QueueList::pop(){
	if(length == 0)
		return 0;
	Point *q = front;
	front = q->getnext();
	length--;
	delete(q);
	return 1;
}

bool QueueList::emp(){
	if(length == 0)
		return 1;
	else
		return 0;
}

int QueueList::size(){
	return length;
}

int QueueList::find(){
	Point *q = front;
	for(int i=0; i<length-1; i++)
		q = q->getnext();
	return q->getx();
}

int QueueList::fron(){
	return front->getx(); 
}

main(void){
	QueueList q = QueueList();
	q.push(1);
	cout<<q.find()<<endl;
	q.push(2);
	cout<<q.find()<<endl;
	q.push(3);
	cout<<q.find()<<endl;
	q.push(4);
	cout<<q.find()<<endl;
	q.pop();
	cout<<q.fron()<<endl;
	q.pop();
	cout<<q.fron()<<endl;
	
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值