【问题标题】:Struggling to create replace method for linked list努力为链表创建替换方法
【发布时间】:2014-03-11 23:57:25
【问题描述】:

我有一个名称的链接列表,即:(Mark,Matt,Marten,Brian,Matt)对于我的项目,我正在尝试创建一种方法,用另一个数据替换一个数据并返回替换的数量。

这是我们的指示

  • int replace(String oldData, String newData) - 替换所有 oldData 与 newData 的出现并返回进行的替换次数 (在列表中找到 oldData 的次数)。

如何替换链表中的字符串并返回替换的次数?


编辑:这是我在查看@LuiggiMendoza 的答案后尝试过的:

   public int replace(String oldData, String newData )
     {
     int count = 0;
     StringNode tmp = head;
     while( tmp->next) is not null
     {
       if tmp->data equals to oldData
     {  
         tmp->data = newData
           count = count + 1;
     }
       tmp = tmp->next
     }
       return count;
     }

【问题讨论】:

  • 我最终要做的是将 matt 替换为 matthew
  • 您已将此问题标记为java,但Java 中没有-> 运算符。
  • Java 中也没有 is not nullequals to。我认为您正在编写 Java、C++ 和 SQL 的大杂烩。
  • 我从 Luiggi Mendoza 那里得到了帮助,这是我目前想出的,我还在调整它
  • 我一直在寻找替换方法的示例,但找不到任何

标签: java string methods linked-list nodes


【解决方案1】:

遍历链表的节点,检查元素中包含的数据是否等于oldData,并将其替换为newData。此外,使用int counter 了解更新了多少节点。

这是一个伪代码:

int counter = 0
Node tmp = head
while tmp->next is not null
    if tmp->data equals to oldData
        tmp->data = newData
        counter = counter + 1
    end if
    tmp = tmp->next
end while
return counter

【讨论】:

  • 我没看懂你的伪代码,tmp是什么?
  • @user3408408 将<- 替换为=(分配)。希望它现在更具可读性。
  • @user3408408 好吧,那是你的功课。如果我发布相关代码,那么我会做功课,你将无法学习:)
  • 真的哈哈只是在我的书中没有找到任何帮助
  • 你知道在哪里我可以找到更多关于这方面的信息吗?如果有例子的话
【解决方案2】:

您已将其标记为 java。但是很少有语法不支持java。

public int replace(String oldData, String newData )
{
     int count = 0;
     StringNode tmp = head;
     while( tmp != null)
     {
       if(tmp.data.equals(oldData)
       {  
         tmp.data = newData;
         count = count + 1;
       }
       tmp = tmp.next;
     }
     return count;

   }

在java中试试这个代码。它应该工作。如果数据是你自己的类,你必须重写equals方法。因为它是字符串,所以它会工作。

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多