首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙改两个队列操作的函数,该怎么解决

2012-02-26 
帮忙改两个队列操作的函数typedefintNODEinten_c_queue(NODEq[],intmaxn,int*tpt,int*hpt,NODEx){if((*tp

帮忙改两个队列操作的函数
typedef   int   NODE;

int   en_c_queue(NODE   q[],int   maxn,int   *   tpt,int   *   hpt,NODE   x){
if((*tpt+1)%maxn   ==   *hpt)   return   1;

q[*tpt+1]   =   x;
*tpt   =   (*tpt+1)%maxn;
return   0;
}

int   de_c_queue(NODE   q[],int   maxn,int   *   tpt,int   *   hpt,NODE   *   cp){
if(*tpt   ==   *hpt)   return   1;

cp   =   q[*hpt];
*hpt   =   (*hpt+1)%maxn;
return   0;
}

现在要把   typedef   int   NODE;   改成
typedef   struct   dnode
{
int   key;
int   value;
}   NODE;
那两个函数该怎么改?
很久没搞c了,对结构体不熟悉

[解决办法]
typedef struct dnode
{
int key;
int value;
} NODE;

int en_c_queue(NODE q[],int maxn,int * tpt,int * hpt,NODE x){
if((*tpt+1)%maxn == *hpt) return 1;

q[*tpt+1] = x.key;
*tpt = (*tpt+1)%maxn;
return 0;
}

int de_c_queue(NODE q[],int maxn,int * tpt,int * hpt,NODE * cp){
if(*tpt == *hpt) return 1;

cp = q[*hpt];
*hpt = (*hpt+1)%maxn;
return 0;
}
[解决办法]
typedef struct dnode
{
int key;
int value;
}NODE;


int en_c_queue(NODE q[],int maxn,int * tpt,int * hpt,NODE x)
{
if((*tpt+1)%maxn == *hpt) return 1;
q[*tpt+1].key = x.key;
q[*tpt+1].value = x.value;
*tpt = (*tpt+1)%maxn;
return 0;
}

int de_c_queue(NODE q[],int maxn,int * tpt,int * hpt,NODE * cp)
{
if(*tpt == *hpt) return 1;
cp-> key = q[*hpt].key;
cp-> value = q[*hpt].value;
*hpt = (*hpt+1)%maxn;
return 0;
}
[解决办法]
注意指针空间的分配问题
[解决办法]
enhancer(增强子) ( ) 信誉:100 Blog 2007-01-09 19:47:30 得分: 0


谢谢楼上
请问 cp = q[*hpt]; 就是把结构体的指针赋给cp吗?


------------------------------------------
cp = &q[*hpt];

热点排行