Neden bağlantılı liste işaretçileri kullanmak daha mı iyi?
Bağlı listeler ile daha önce Java ile yoğun çalıştım, ama C için çok yeniyim . Bir proje iyi de bana verilen bu düğüm sınıf kullanıyordum
class Node
{
public:
Node(int data);
int m_data;
Node *m_next;
};
ama çok iyi yanıtlanmamış bir soru vardı. Neden kullanmak gerekli mi
Node *m_next;
listedeki bir sonraki düğüme işaret etmek yerine
Node m_next;
Daha iyi işaretçi sürümünü kullanmak olduğunu anlıyorum; gerçekleri tartışacak değilim, ama daha iyi oldu neden bilmiyorum. İşaretçi bellek ayırma için daha hayırlıdır ve eğer biri beni buraya neden olabilir acaba hakkında çok net bir cevap daha aldım.
CEVAP
Java
Node m_node
mağazadan başka bir düğüme bir işaretçi. Bu konuda bir seçeneğin yok. C
Node *m_node
aynı şeyi ifade eder. Fark C gerçekte bir işaretçi farklı olarak bir nesne saklayabilirsiniz. Bir işaretçi istediğiniz söylemek zorundasın. C :
Node m_node
demek burada düğüm (ve açıkça bir listesi için çalışamaz - özyinelemeli olarak tanımlanmış bir yapı ile sonuna kadar saklanır.
Neden [] liste daha hızlı()?...
Neden't varsa PyPy 6.3 kat daha h...
Neden C kütüphaneler ve çerçeveler hiç...
Neden küçük bir liste daha küçük bir d...
Neden bir Liste içinde dolaşmak üzerin...