- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
需要创建单元测试请帮忙当我创建单元测试时,它显示错误“测试中不允许使用参数”
package MergeDoublyLL;
import java.util.ArrayList;
import java.util.Iterator;
public class doublell {
static Node head;
static class Node {
int data;
Node next, prev;
Node(int d) {
data = d;
next = prev = null;
}
}
Node split(Node head) {
Node fast = head, slow = head;
while (fast.next != null && fast.next.next != null) {
fast = fast.next.next;
slow = slow.next;
}
Node temp = slow.next;
slow.next = null;
return temp;
}
Node mergeSort(Node node) {
if (node == null || node.next == null) {
return node;
}
Node second = split(node);
node = mergeSort(node);
second = mergeSort(second);
return merge(node, second);
}
Node merge(Node first, Node second) {
if (first == null) {
return second;
}
if (second == null) {
return first;
}
if (first.data < second.data) {
first.next = merge(first.next, second);
first.next.prev = first;
first.prev = null;
return first;
} else {
second.next = merge(first, second.next);
second.next.prev = second;
second.prev = null;
return second;
}
}
int[] print(Node node) {
int a;
ArrayList<Integer> al = new ArrayList<Integer>();
Node temp = node;
System.out.println("Forward Traversal using next pointer");
while (temp != null) {
a=(temp.data);
al.add(a);
temp = temp.next;
}
int[] ret = new int[al.size()];
Iterator<Integer> iterator = al.iterator();
for (int i = 0; i < ret.length; i++)
{
ret[i] = iterator.next().intValue();
}
return ret;
}
public static void main(String[] args) {
doublell list = new doublell();
doublell.head = new Node(10);
doublell.head.next = new Node(30);
doublell.head.next.next = new Node(3);
doublell.head.next.next.next = new Node(4);
doublell.head.next.next.next.next = new Node(20);
doublell.head.next.next.next.next.next = new Node(5);
Node node;
node=head;
node = list.mergeSort(head);
System.out.println("Linked list after sorting :");
int[] result =list.print(node);
for (int j=0; j<result.length;j++)
System.out.print(result[j]);
}
}
<小时/>
单元测试:
// Unit Test
package MergeDoublyLL;
import static org.junit.Assert.assertArrayEquals;
import org.junit.Test;
import MergeDoublyLL.doublell.Node;
public class testdoublell {
@Test
public void test(Node head) {
doublell list = new doublell();
doublell.head = new Node(10);
doublell.head.next = new Node(30);
doublell.head.next.next = new Node(3);
doublell.head.next.next.next = new Node(4);
doublell.head.next.next.next.next = new Node(20);
doublell.head.next.next.next.next.next = new Node(5);
Node node=head;
node = list.mergeSort(head);
int result[] =list.print(node);
int expectedArray[] = {3,4,5,10,20,30};
assertArrayEquals(expectedArray, result);
}
}
最佳答案
单元测试应该独立于其他所有内容来测试单个代码单元。您正在向测试传递一个参数:
@Test
public void test(Node head) {
只需在测试中创建头节点并且不带参数:
@Test
public void test() {
关于java - 'Merge Sort on doubly linked list' 的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047844/
作为作业,我必须用双向链表实现四种排序算法(Insertion、Selection、Shell、Quicksort),但我完全迷路了,因为我在网上找到的所有排序算法的解释都需要使用数组。我试图将此代码
我有这个循环,但它不起作用:-/ for i in *CCDSxBaseCov.bed do SM=`(echo $i | sed 's/.bed//g')`; echo $SM
这是我的双向链表的代码。它工作正常。我需要帮助对这个链表的数据元素进行排序。 #include #include struct Node{ int data; struct Node* next;
题目地址:https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/description/ 题目描述: Youa
我有一个数组,表示根据以下模型的展平树: export interface TreeModel { id: number; parent: number; value: string;
需要创建单元测试请帮忙当我创建单元测试时,它显示错误“测试中不允许使用参数” package MergeDoublyLL; import java.util.ArrayList; import jav
我正在尝试在已排序的双向链表中添加几个节点。代码有问题,我无法弄清楚。我创建了两个节点 current 和 prev 这将有助于遍历。 /* Insert Node at the end of a
目前我正在尝试解决使用迭代器时遇到的两个问题。 1当使用类似的东西时 forAllIter(PtrDictionary, phases_, iter) { phaseModel& phase = i
我正在编写一个程序来创建一个双向链表并从中删除某个元素。一切都很好,除了列表仅包含 1 个元素的部分,当我尝试删除它时,程序崩溃了。有什么建议吗? #include #include struct
在Data Structures and Algorithms Made Easy , struct 内存高效内存列表给出如下, struct LinkNode { int data; struc
在多线程 C 程序中,我使用了 GLib (https://developer.gnome.org/glib/2.35/glib-Doubly-Linked-Lists.html#g-list-app
所以,我有 puts "test\\nstring".gsub(/\\n/, "\n") 那行得通。 但是我该如何编写一个语句来将\n、\r 和\t 替换为正确转义的对应项? 最佳答案 你必须使用反向
我知道之前已经有人询问并回答了“反转双向链表”,例如: Reversing a Doubly Linked List但我的问题有点不同。 我可以在网上找到的所有方法都使用“当前节点 (curr)”迭代
更正: 链接 #1 http://play.golang.org/p/CKRNyWYF8X 链接 #2 http://play.golang.org/p/oT2yKzFwep 从第一个链接,我确定 p
我正在搞清楚C 中双链表的实现。我的列表按排序顺序添加。我坚持删除这些值。下面的函数不会从双向链表中删除节点。我认为我的逻辑是正确的,但我正在努力分配节点值。 a表示添加,d表示删除 struct N
题目地址:https://leetcode-cn.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list/ 题目描述
我的模型设置如下。一切正常,除了允许空白部分记录,即使所有部分和章节字段都是空白的。 class Book < ActiveRecord::Base has_many :parts, invers
我遇到过一个奇怪的情况,学生(我在这方面是一名助教)必须实现他们自己的单向链表 (SLL) 版本,并将其与双链表的 Java 标准库实现进行经验比较链表。 这就是它变得奇怪的地方:我看到多名学生注意到
我遇到过一个奇怪的情况,学生(我在这方面是一名助教)必须实现他们自己的单向链表 (SLL) 版本,并将其与双链表的 Java 标准库实现进行经验比较链表。 这就是它变得奇怪的地方:我看到多名学生注意到
在实现此双向链表数据结构时,我收到 Segmentation failure:11 错误。 我已经以下图的形式发布了我的代码: #include #include struct node { stru
我是一名优秀的程序员,十分优秀!