我目前正在使用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/;
}
答案 0 :(得分:0)
所以甲板的结构是这样的;甲板有一个DLL,它有一个有卡的节点。如果您想要更换DLL中的节点而不更改节点,则可以更改节点data
字段。
您已经拥有所需卡片的索引,因此现在可以获得对节点的引用。因为您使用的是列表,所以实际上没有比实现线性搜索更好的方法了。在您的DLL类中,您可以创建类似public Node getNode(Int n)
的方法。在此方法中,从头开始循环到下一个节点n次,并返回该节点。
假设node1
和node2
是您使用先前方法找到的类型节点的参数,或类似的东西。您可以交换节点类型的T数据字段。在甲板类中,您现在的DLL类型为card
。因此,使用getData()
和setData()
方法,交换值(您必须创建一个临时变量来保存一个节点的数据,同时进行交换)。