Whi-Wolf 2023-10-09 20:04 采纳率: 33.3%
浏览 2

链队列查找循环无效,如何解决

错误在于for这一句执行出问题,前一个sb能打后一个就没了,遍历感觉也没毛病啊,问题出在哪?


//元素
typedef struct{
int num;
int time;
}elemtype;

//链结点
typedef struct{
elemtype data;
struct Node* next;
}Node;

//链队列
typedef struct{
Node* front;
Node* rear;
int size;
}queue,*linkq;


//变形出队,查找是否在队列中
int outqueue(linkq Q,elemtype e){
Node* p;
printf("sb");
for(p=Q->front->next;p->data.num!=e.num&&p!=NULL;p=p->next);
printf("sb");
·
·
··

问题在于for这一句执行出问题,前一个sb能打后一个就没了,遍历感觉也没毛病啊,问题出在哪?

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-10-09 20:12
    关注

    问题出在for循环中的条件判断部分。在循环中,应该使用逻辑与运算符(&&)而不是逻辑或运算符(||)。

    以下是修正后的代码:

    int outqueue(linkq Q, elemtype e) {
        Node* p;
        printf("sb");
        for (p = Q->front->next; p != NULL && p->data.num != e.num; p = p->next);
        printf("sb");
    
        // 其他代码...
    }
    

    修正后的代码将正确遍历链队列,直到找到目标元素或到达队列尾部。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 10月9日

悬赏问题

  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!