首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在链表中搜索

在链表中搜索
EN

Stack Overflow用户
提问于 2011-04-30 15:50:59
回答 6查看 7.3K关注 0票数 1

下面是我在链表中进行搜索的代码,但它没有给出正确的结果。请帮帮我,我很担心。

代码语言:javascript
复制
search() {

  char ser[20];
  cout << "enter data to be searched" << endl;
  gets(ser);

  for ( start=head; start->ptr!=NULL; start=start->ptr ) {
    if ( start->info == ser ) {
      cout << "ok" << endl;
      break;
    }
  }
  cout << "not found" << endl;
}

谢谢,赛马·坎瓦尔·布塔

EN

Stack Overflow用户

发布于 2011-04-30 16:12:41

赛马

首先,欢迎来到论坛,也欢迎精彩、令人沮丧和成果丰硕的计算机编程世界。

其次,我编辑了你的帖子。如果您现在单击edit按钮,您将看到如何布局您的源代码,以便论坛很好地显示它。

第三,我猜你指的是return,你说的是break ...这样您就不会总是看到“找不到”的消息。这是你想要的吗?

第四,我建议您将用户输入部分与列表搜索部分分开...这很容易做到,而且它使链表搜索可用于任何字符串(来自任何地方),而不仅仅是用户现在输入的字符串。同样,将输出从搜索中分离出来,这样您就可以在以后重用搜索,以便在这种情况下生成任何合适的输出。

最后,这些变量名(请原谅)太烂了!

所以..。我的ANSI-C版本看起来像这样:

代码语言:javascript
复制
int contains(char* target) {
  for ( Node node=head; node->next!=NULL; node=node->next ) {
    if ( strcmp(node->data, target)==0 ) {
      return 0; // TRUE
    }
  }
  return 1; // FALSE
}

以上是链表各部分的“相当标准”的名称,它们有助于使您的代码更具可读性,因此可维护性更好。另外,WTF是一个“ser...”“目标”怎么样?

如果这都是你想不到的,那就别担心了。暂时忽略这个建议。

干杯。基思。

票数 1
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5840420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档