搜索一个项目链表C(队列)



我有两个结构体名为*头和*尾。

我用头作为链表的开始,用尾作为链表的结束。

假设我有一个包含任意数量元素的链表

typedef struct queue
{
    int stuff;
    struct queue *nextNode;
}q;

在我的一个节点中,stuff = 164(这是假设的)

我该如何在链表中搜索164呢?

谢谢!

获取指向链表头部的指针。假设列表中的最后一项被标记为其nextNode指针为NULL,则可以逐个遍历列表:

struct queue *tmp = head;
while (tmp != NULL) {
    if (tmp->stuff == 164) {
        // found it!
        break;
    }
    tmp = tmp->nextNode;
}
struct queue *find(struct queue *ptr, int val) {
 for ( ; ptr; ptr = ptr->nextNode) {
     if (ptr->stuff == val) break;
     }
 return ptr;
}

遍历队列

struct queue *current = head;
while(current != NULL)
{
    if(current->stuff == numToSearch)
        // found it
    current = current->nextNode;
}

注意:请原谅任何语法错误,我已经有一段时间没有触摸c

从head开始。当未到达尾部且当前项值不是我们要查找的值时,转到下一个节点。如果完成循环的item不是我们要查找的->这样的item在列表中不存在。代码是在假设尾指针不为NULL的情况下编写的。

struct queue* item = head;
while (item != tail && item->stuff != 164) {
    item = item->nextNode;
}
if (164 == item->stuff) {
// do the found thing
} else {
// do the not found thing
}

相关内容

  • 没有找到相关文章

最新更新