显示队列删除后的数据

我正在使用c中的struct创建一个队列来存储客户。我可以删除客户节点,但我希望显示已删除客户的信息,即名称和条形码编号

类型定义结构客户{
char name[50];//客户的名称
double barcodeNumber;//客户票据中的条形码编号
struct customer*next;//指向此客户之后队列中下一个客户的指针
}
顾客
类型定义结构事件队列{
Customer*head;//指向队列前面/最前面的客户
Customer*tail;//指向队列末尾/末尾的客户
}事件队列;

这是我的删除功能

int removeCustomer(事件队列*qPtr,客户*c)
{
if(qPtr==NULL)
返回无效的_输入_参数;
如果(c==NULL)
返回无效的_输入_参数;
如果(qPtr->head==NULL)
返回无效的队列操作;
字符*名称;
双条码;
strcpy(c->名称,名称);
barcodeCopy=c->条形码;
c=qPtr->压头;
qPtr->head=qPtr->head->next;
免费(c);
//如果函数成功完成,则返回的值
回归成功;
}

这是我对代码的实现

void main()
{
printf(“试图将客户从队列中删除…”);
//(尝试)从队列中删除/弹出客户
客户信息;
//用于接收从队列中删除的客户数据的变量
result=removeCustomer(pQueue,&customerInfo);//这将调用removeCustomer()的实现
//如果客户未成功删除
如果(结果!=成功)
{
printf(“错误:无法从队列中删除客户。\n”);
}
其他的
{
printf(“.customer已成功删除!\n”);
printf(“删除的客户是%s,其条形码编号为%.0lf。\n”“customerInfo.name,customerInfo.barcodeNumber);}

}

只需分解removeCustomer方法中的操作

  1. 获得;“第一/前面”;排队的顾客

    Customer*first=qPtr->头部

  2. 将其数据复制到作为参数传递的Customer info结构

    //为了清晰起见,使用first,但使用qPtr->头->名称也起作用
    strcpy(c->名称,第一个->名称)
    c->条形码编号=第一个->条码号

  3. 更新队列-删除前端

    qPtr->压头=qPtr->头->其次

  4. 删除第一个客户(现在已提取)

    免费(第一)

发表评论