के लिए एक प्रतिलिपि निर्माता बनाना यह होमवर्कएक लिंक्ड सूची
मैं अपने सी ++ वर्ग के लिए एक लिंक की गई सूची वर्ग को लागू करने पर काम कर रहा हूँ है, और प्रतिलिपि निर्माता मेरे लिए बहुत भ्रामक हो गया है।
लिंक्ड सूची structs elems कहा जाता है के शामिल है:
struct Elem
{
int pri;
data info;
Elem * next;
};
Elem * head;
की जानकारी है कि Elem में संग्रहित है एक अलग, कस्टम वर्ग है।
प्रतिलिपि निर्माता के लिए हस्ताक्षर है:
linkedList::linkedList(const linkedList &v)
मुद्दा मैं कर रहा हूँ ज्यादातर मेरे तर्क ले रहे हैं और वास्तव में कोड के रूप में यह लिख रहा है। करने के लिए
मेरे सामान्य विचार है:
- सेट सिर v.head को (सिर = v.head)
- वी के (pri = v.pri को Elem के मूल्यों सेट, जानकारी = v.info अगले = v.next)
- दोहराएं के माध्यम से, चरण दोहराते 2.
इस सामान्य विचार है?
कोई भी मदद महान होगी। याद रखें, यह होमवर्क है, इसलिए कोई सीधा जवाब नहीं है!
अपना समय
के लिए धन्यवाद =================================== ================================================== ================================================== =============================
आपके समय के लिए धन्यवाद!
मुझे लगता है मैं यह पता लगा है:
//Copy Constructor
LinkedList::LinkedList(const LinkedList &v)
{
Elem * p1 = 0;//current
Elem * p2 = 0;//next
if(v.head == 0)
head = 0;
else
{
head = new Elem;
head -> pri = v.head -> pri;
head -> info = v.head -> info;
p1 = head;
p2 = v.head -> next;
}
while(p2)
{
p1 -> next = new Elem;
p1 = p1 -> next;
p1 -> pri = p2 -> pri;
p1 -> info = p2 -> info;
p2 = p2 -> next;
}
p1 -> next = 0;
}
मुझे लगता है कि काम करता है यकीन है कि हूँ। मैंने मदद करने के लिए कुछ तार्किक चित्र खींचे, और मैंने किसी भी मुद्दे में भाग नहीं लिया।
वास्तव में प्रतिलिपि बनाने वाले को क्या करना चाहिए? उचित लिंक के साथ प्रत्येक नोड की प्रतिलिपि बनाना उचित लगता है, लेकिन यह एकमात्र संभावना नहीं है। –
+1 चुपचाप होमवर्क * के लिए और कोई सीधा जवाब मांगने के लिए *। –
मुझे सही संकेत देने के लिए धन्यवाद!मैंने अपने नोड्स के लिए एक गहरी प्रतिलिपि निर्माता को लागू किया, ताकि "अंतिम" नोड के ऑब्जेक्ट को पैरेंट नोड और उसके पैरेंट नोड के संदर्भ संदर्भ के साथ ... संरचना में बने रहने के लिए सक्षम किया जा सके। पेड़ खोज एल्गोरिदम के लिए इसे इस्तेमाल किया – mtosch