首页 > 代码库 > 算法(Algorithms)第4版 练习 1.3.26
算法(Algorithms)第4版 练习 1.3.26
方法实现:
//1.3.26 /** * remove all of the nodes in the list that have key as its item field * * @param list the linked list of T * @param key the T key * * @return void * */ public static <T> void remove(LinkedList<T> list, T key) { Node<T> precurrent; precurrent = findPreNode(list, key); //remove all of the nodes while(precurrent.next != null) { if(precurrent.next == list.first) list.first = list.first.next; else precurrent.next = precurrent.next.next; precurrent = findPreNode(list, key); } } //1.3.26 /** * find the node in the list whose item equals key * * @param key the T key * * @return return the previous node whose item equals key */ private static <T> Node<T> findPreNode(LinkedList<T> list, T key) { Node<T> precurrent = new Node<T>(); precurrent.next = list.first; while(precurrent.next != null && !precurrent.next.item.equals(key)) { precurrent = precurrent.next; } return precurrent; }
测试用例:
package com.qiusongde.linkedlist; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class Exercise1326 { public static void main(String[] args) { String key = "to"; LinkedList<String> list = new LinkedList<String>(); while(!StdIn.isEmpty()) { String s = StdIn.readString(); list.insertAtBeginning(s); StdOut.println("insertAtBeginning success: " + s); StdOut.println(list); } LinkedList.remove(list, key); StdOut.println("remove success:" + key); StdOut.println(list); } }
输入数据:
to
be
or
not
to
结果1:
insertAtBeginning success: to
to
insertAtBeginning success: be
be to
insertAtBeginning success: or
or be to
insertAtBeginning success: not
not or be to
insertAtBeginning success: to
to not or be to
remove success:to
not or be
结果2:
insertAtBeginning success: to
to
insertAtBeginning success: be
be to
insertAtBeginning success: or
or be to
insertAtBeginning success: not
not or be to
insertAtBeginning success: to
to not or be to
remove success:not
to or be to
结果3:
insertAtBeginning success: to
to
insertAtBeginning success: be
be to
insertAtBeginning success: or
or be to
insertAtBeginning success: not
not or be to
insertAtBeginning success: to
to not or be to
remove success:qiu
to not or be to
算法(Algorithms)第4版 练习 1.3.26
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。