C++的队列

//定义link.h的头文件,如下。typedefstructnode{intdata;structnode*next;}listdatanode;//定义链表类型typ... //定义link.h的头文件,如下。
typedef struct node{
int data;
struct node *next;
} listdatanode;
//定义链表类型
typedef listdatanode * listdata;
class linklist
{protected:
int count; //列表中元素的个数
listdata datalinkhead, datalinktail;//表头、表尾指针

public:
linklist(void); //构造函数
virtual ~linklist(void); //析构函数

void puttail (int newdata); //在表尾加入一个新元素
void puthead (int newdata); //在表头插入一个新元素
int gethead (void); //从表头取出一个元素

int peekhead(void) ;//查看表头元素的值,假定列表至少有一个元素

bool empty ( ); //检查列表是否空
int getelemcount() ; //取列表元素个数

static int getListNumber(); //取列表个数

};
class queue:public linklist
{ public:
queue():linklist(){}
void enqueue(int newdata){puttail(newdata);}
};
//下面是主函数

#include "link.h"
#include "iostream"
using namespace std;
linklist::linklist()
{count=0;
datalinkhead=NULL;
datalinktail=NULL;
}
linklist::~linklist()
{}
void linklist::puttail(int newdata)
{count=count+1;
listdatanode *p=new listdatanode;
p->data=newdata;
p->next=NULL;
if(datalinktail==NULL)
{datalinkhead=datalinktail=p;
}
else
{datalinktail->next =p;
datalinktail=p;
}
}

int linklist::gethead(void)
{listdatanode *p;
int a;
p=datalinkhead;
datalinkhead=datalinkhead->next ;
a=p->data;
delete p;
count--;
return a;
}

int main(int argc, char* argv[])
{ int i;
queue *q1=new queue;
for(i=0;i<4;i++)
{q1->enqueue(i);}
for(i=0;i<4;i++)
{cout<<q1->gethead()<<endl;}
}
请问我哪错了,真的感谢。
展开
 我来答
renjianke
2009-11-28 · TA获得超过2932个赞
知道小有建树答主
回答量:580
采纳率:0%
帮助的人:661万
展开全部
#include <iostream>
using namespace std;
typedef struct node{
int data;
struct node *next;
} listdatanode;
//定义链表类型
typedef listdatanode * listdata;
class linklist
{protected:
int count; //列表中元素的个数
listdata datalinkhead, datalinktail;//表头、表尾指针

public:
linklist(void); //构造函数
virtual ~linklist(void); //析构函数

void puttail (int newdata); //在表尾加入一个新元素
void puthead (int newdata); //在表头插入一个新元素
int gethead (void); //从表头取出一个元素

int peekhead(void) ;//查看表头元素的值,假定列表至少有一个元素

bool empty ( ); //检查列表是否空
int getelemcount() ; //取列表元素个数

static int getListNumber(); //取列表个数

};
class queue:public linklist
{ public:
queue():linklist(){}
void enqueue(int newdata){puttail(newdata);}
};
//下面是主函数

linklist::linklist()
{count=0;
datalinkhead=NULL;
datalinktail=NULL;
}
linklist::~linklist()
{}
void linklist::puttail(int newdata)
{count=count+1;
listdatanode *p=new listdatanode;
p->data=newdata;
p->next=NULL;
if(datalinktail==NULL)
{datalinkhead=datalinktail=p;
}
else
{datalinktail->next =p;
datalinktail=p;
}
}

int linklist::gethead(void)
{listdatanode *p;
int a;
p=datalinkhead;
datalinkhead=datalinkhead->next ;
a=p->data;
delete p;
count--;
return a;
}

int main(int argc, char* argv[])
{ int i;
queue *q1=new queue;
for(i=0;i<4;i++)
{q1->enqueue(i);}
for(i=0;i<4;i++)
{cout<<q1->gethead()<<endl;}
}

这样就可以编译执行了。功能有按照你的预期实现偶就不知了~
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
490749157
2009-11-28 · TA获得超过738个赞
知道小有建树答主
回答量:276
采纳率:100%
帮助的人:340万
展开全部
不知道你这到底是队列啊还是链表,或者是链表队列?今天太晚了,没心情看了,明天有时间再看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式