All pastes #902758 Raw Edit

Anonym

public text v1 · immutable
·published 2008-02-13 19:15 UTC
rendered paste body
class Node<T extends Number> {
    Integer numNodes;
    Node first; Node last;
    Node next; Node prev;
    T value;
    Node(T value) {
        this.numNodes = 1;
        this.value = value;
        this.first = this;
        this.last = this;
    }
    void add(T... values) {
        for (T value: values) {
            Node newNode = new Node(value);
            newNode.prev = this.last;
            newNode.first = this.first;
            newNode.next = null;
            newNode.numNodes = this.first.numNodes;
            this.last.next = newNode;
        
            for (Node n = this.first; n != null; n = n.next)
                n.last = newNode;
                
            this.first.numNodes += 1;
        }
    }
    
    static float sum(Node node) {
        return ((Number) node.value).floatValue() +
            ((Number) (node.next != null ? node.sum(node.next) : 0)).floatValue();
    }
    static float durchschnitt(Node node) {
        return node.sum(node.first)/node.numNodes;
    }
}

public class foo {
    static void test() {
        Node<Float> node;
        node = new Node(2.5f);
        node.add(3.5f, 1.6f, 3.6f, 1.3f, 3.0f);
        System.out.println(Node.sum(node.first));
        System.out.println(Node.durchschnitt(node));
    }
}