weixin_42350669 2010-03-06 11:40
浏览 157
已采纳

我这样写个链表,不知道合理不?

class Node{
String data;
Node next;
public Node(){}
public Node(String data, Node next) {
this.data = data;
this.next = next;
}
}

public class List {
private Node head;
private int size=0;
public List(){
head = new Node(null,null);
}

[color=red] public void add(String data){
if(head.next==null){
head.data=data;
head.next = new Node(null,null);
}
Node temp=head;
while(temp.next!=null){
temp=temp.next;
}
temp.data=data;
temp.next=new Node(null,null);
size++;
}[/color]

public int getSize(){
    return size;
}

public void getNode(int i){
    int n=0;
    Node temp = head;   
    if (head.next != null) {   
        do {   
            temp = temp.next;
            n++;
        } while (n!=i);   
    }
    System.out.println(temp.data);
}


public void print(){
    Node temp=head;
    for(int i=0;temp!=null && i<size;i++){   
        temp=temp.next;   
        System.out.println(temp.data);
    }
}

public static void main(String[] args){
    List l = new List();
    l.add("a");
    l.add("b");
    l.add("c");
    l.add("d");
    l.print();
    l.getNode(4);
    System.out.println(l.getSize());
}

}

没有任何问题,但不知道这样写是不是正路子,呵呵。

  • 写回答

1条回答 默认 最新

  • iteye_13500 2010-03-06 12:23
    关注

    [code="java"]public void add(String data){
    if(head.next==null){
    head.data=data;
    head.next = new Node(null,null);
    }
    Node temp=head;
    while(temp.next!=null){
    temp=temp.next;
    }
    temp.data=data;
    temp.next=new Node(null,null);
    size++;
    } [/code]

    这样写不妥,集体可以参考LinkList类的实现,LinkList实现的双向链表,但是思想是一样的。

    好的做法是插入的时候直接在链表头后面插入节点,这样插入节点在O(1)次就可以完成,而你的做法是在链表末尾插入节点,需要O(n)次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法