双重链表

时间:2016-06-12 16:46:53

标签: java doubly-linked-list

我目前正在使用DoublyLinkedList(DLL)数据结构处理我在Card游戏上的任务。我想从卡片组中随机选择4对卡片,并在不切换节点的情况下交换卡片的内容。所以基本上,我们只使用随机生成器,并根据剩余的卡数随机分配卡的索引。问题是如何将索引分配给卡并交换它们。在arraylist中,我们只需使用get和set方法。但是,对于双链接列表(DLL)我需要访问DLL类吗?有人可以帮忙吗?

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        proxy_pass             http://localhost:5055;
        proxy_set_header       Host $host;
    }

    location /schifezze/ {
        proxy_pass http://localhost:8931/;
    }

    location /subdir/ {
        root /var/www/html/subdir/;
    }

1 个答案:

答案 0 :(得分:0)

所以甲板的结构是这样的;甲板有一个DLL,它有一个有卡的节点。如果您想要更换DLL中的节点而不更改节点,则可以更改节点data字段。

您已经拥有所需卡片的索引,因此现在可以获得对节点的引用。因为您使用的是列表,所以实际上没有比实现线性搜索更好的方法了。在您的DLL类中,您可以创建类似public Node getNode(Int n)的方法。在此方法中,从头开始循环到下一个节点n次,并返回该节点。

假设node1node2是您使用先前方法找到的类型节点的参数,或类似的东西。您可以交换节点类型的T数据字段。在甲板类中,您现在的DLL类型为card。因此,使用getData()setData()方法,交换值(您必须创建一个临时变量来保存一个节点的数据,同时进行交换)。