草庐IT

链表分割

全部标签

java - 链表操作的时间复杂度

这个问题在这里已经有了答案:WhatisthetimecomplexityofLinkedList.getLast()inJava?(5个答案)关闭9年前。我正在根据股票市场程序实现链表。它有和操作-购买购买代码是//StocksisalinkedListlikeso//LinkedListstocks=newLinkedList();publicvoidbuy(intq,intp){stocks.addLast(q);//addnumberofstocksstocks.addLast(p);//foristocksi+1=priceofstock}此操作addLast用于链表,显然将

java - 使用 toString 打印链表

好的,我正在尝试学习如何打印链表。我拥有列表所需的所有方法,但我不知道如何显示节点的值。现在我的main方法中没有任何内容,因为我在尝试调用main中的非静态方法时不断出错。我有一个显示列表内容的toString方法。我将如何调用此toString来显示每个节点的值?任何建议将不胜感激。这是节点类:publicclassLinkedListNode{privateintdata;privateLinkedListNodenext;publicLinkedListNode(intdata){this.data=data;this.next=null;}publicintgetData()

java - 切换链表中的两个元素

有没有办法在不删除和重新插入链表的情况下切换两个元素?我目前使用的代码是:voidexchange(inti,intj){int[]temp=matrix.get(i);matrix.remove(i);matrix.add(i,matrix.get(j-1));matrix.remove(j);matrix.add(j,temp);}其中matrix是我的链表。 最佳答案 在集合对象中使用交换方法:http://download.oracle.com/javase/6/docs/api/java/util/Collections.

java - 如何使用 Comparable 比较链表中的通用节点?

我正在使用链表实现排序列表。我的节点类看起来像这样publicclassNode{Eelem;Nodenext,previous;}在排序列表类中,我有add方法,我需要根据通用对象的compareTo()方法的实现来比较通用对象,但我得到了这个语法错误“方法compareTo(E)未为类型E定义”。我已经尝试在Node中实现compareTo方法,但是我无法调用任何对象的方法,因为E是泛型类型。这是add(Eelem)方法的未完成主体。publicvoidadd(Eelem){Nodetemp=newNode();temp.elem=elem;if(isEmpty()){temp.n

Java:由正则表达式分割的字符串只得到整数

我有一个字符串:[1,2,3,4]。我只需要获取整数1234。我尝试了以下拆分:str.split(",");str.split("\\D\\s");两个拆分都返回四个元素:[1234],但我不需要这些括号[]。拆分正则表达式有什么问题?已更新我不得不提一下,每个数字都用[]包裹的情况可能会发生。 最佳答案 你可以尝试先过滤掉不需要的元素,然后拆分:Stringfiltered=str.replaceAll("[^0-9,]","");String[]numbers=filtered.split(",");

c# - 链表 <T> (2.0) : removing items iteratively

我需要遍历LinkedList(在.NET2.0中)并根据给定条件删除所有项目。这在Java下很简单,因为我可以执行以下操作:Iteratori=list.iterator();while(i.hasNext()){Ee=i.next();if(e==x){//Found,somoveittothefront,i.remove();list.addFirst(x);//Returnitreturnx;}}不幸的是,在IEnumerator的.NET行为中(相当于Iterator)没有remove方法从集合中删除当前元素。此外,在LinkedList无法访问给定索引处的元素,无法通过从最

java - HashMap 何时以及如何将桶从链表转换为红黑树?

这个问题在这里已经有了答案:HashMapJava8implementation(6个答案)关闭5年前。我研究了Java8的特性,发现当桶上的条目集数量增加时,HashMap使用红黑树而不是链表。但是,这不要求键是Comparable或键的某些顺序存在吗?这是如何工作的?这种转换实际上何时发生以及如何发生?

支持快速删除任意节点的Java链表?

java.util.LinkedList不允许您快速删除列表中的给定对象。remove(object)方法执行线性搜索以在列表中找到对象,以便将其删除。由于这是一个双链表,最好通过更新指针(node.prev和node.next)来删除。这个问题的Java标准解决方案是什么?注意1:我不想在迭代时删除。我知道这很快,但我一开始并没有遍历我的元素。注意2:为简单起见:给定一个我知道它在双链表中的对象O,我想快速从该列表中删除O(通过更新指针),而不必在列表,就像java.util.LinkedList一样。 最佳答案 你应该看看Lin

java - 将链表转换为 ArrayList

我必须编写一个程序来执行LZWDecode,我决定使用LinkedList编写下面的LZWDecode程序,但我想将其转换为ArrayList。任何人都知道如何将LinkedList转换为ArrayList以使其更简单。谢谢。importjava.util.*;publicclassLZWDecoder{privatefinalintCLEAR_TABLE=256;privatefinalintEND_OF_DATA=257;privatefinalintTABLE_SIZE=4096;privatestaticLinkedListinput=newLinkedList();@Supp

java - 将 3 个链表合并为 1 个(Java)

我有一个关于我正在参加的编码类(class)的期末复习的问题。它要求将3个链表合并为1个链表。我遇到的问题是在合并列表时,我能够按升序合并三个列表,但我缺少第二个列表23和25的最后两个节点。我无法弄清楚为什么它停在那里。问题在这里:编写一个名为LinkedTest的程序:创建三个排序的整数单链表,如下所示FirstList:211192124SecondList:1415182325ThirdList:39172022将三个链表合并为一个新的排序链表,如下所示:239111415171819202122232425返回新的排序链表要求:你的程序的时间复杂度必须小于等于O(nlogn)