恳请版主和各位大哥帮忙!如何在430中使用队列数据结构?

pqwgh   2007-1-11 10:14 楼主
各位高手,由于项目需要,须在程序中使用队列,对列的成员是一个结构。写了个测试程序但是新节点总是挂不到队列中去,请各位大侠指点!我的代码如下:


struct queueNode {
long int data;
struct queueNode *nextPtr;
};

typedef struct queueNode QUEUENODE;
typedef QUEUENODE *QUEUENODEPTR;


int main( void )
{
QUEUENODEPTR headPtr=NULL,tailPtr = NULL;
unsigned char i;
for(i=0;i<=200;i++)
{
enqueue(&headPtr,&tailPtr,i);
}


return 0;
}

void enqueue(QUEUENODEPTR * headPtr,QUEUENODEPTR * tailPtr,char value)
{
QUEUENODEPTR newPtr;
newPtr = malloc(sizeof(QUEUENODEPTR));

if(newPtr != NULL){
newPtr ->data = value;
newPtr ->nextPtr = NULL;

if(isEmpty(*headPtr))
*headPtr= newPtr;
else
(*tailPtr)->nextPtr = newPtr;

*tailPtr = newPtr;
}
}

回复评论 (4)

把循环计数i<200
改成i<5试试
点赞  2007-1-11 12:28
改过了,还是在malloc(sizeof())时第二个节点分配不到内存。请各位高手指点!!
点赞  2007-1-11 14:25
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2007-1-12 18:21

谢谢!我也查出来了

谢谢各位大侠!
我是跟踪到它分配内存的时候发现它的指针乱指才发现的。不管怎样,再次感谢各位指点!!
点赞  2007-1-19 10:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复