वहाँ मजबूत कारण एक नोड एक से अधिक डेटा संरचना में उपयोग करने के लिए एक से अधिक नोड संकेत शामिल करने के लिए नहीं है?

वोट
0

उदाहरण के लिए काम मैं पर काम कर रहा हूँ ले लो। हम डेटा का एक सेट में से एक टुकड़ा और फिर सेट में एक और टुकड़े के लिए एक लिंक की गई सूची के लिए एक द्विआधारी खोज वृक्ष उपयोग करने के लिए कर रहे हैं। प्रोफेसर ने सुझाव दिया विधि थी:

struct treeNode
{
    data * item;
    treeNode *left, *right;
};

struct listNode
{
    data * item;
    listNode *next, *prev;
};

class collection
{
public:
         ........
}

कहाँ डेटा एक वर्ग प्रत्येक रिकॉर्ड का विवरण युक्त है। जाहिर है के रूप में यह की स्थापना की है, एक treeNode लिंक्ड सूची में मौजूद नहीं कर सकते हैं।

यह बहुत आसान नहीं होगा:

struct node
{
    data * item;
    node *listNext, *listPrev, *treeLeft, *treeRight;
};

फिर हम घोषणा कर सकते हैं:

node * listHead;
node * treeRoot;

और वर्ग में दोनों प्रविष्टि एल्गोरिदम शामिल हैं।

वहाँ कुछ मैं याद कर रहा हूँ है?

09/03/2011 को 19:33
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
0

आप ऐसा कर सकते हैं, लेकिन आप अतिरिक्त संकेत के साथ स्मृति बर्बाद कर रहे हैं। इसके अलावा, यह अधिक ऐसे ही प्रकार के मिश्रण को भ्रमित हो जाता है। मैं यह सोचते हैं कि डेटा या तो सूची में डाल दिया या पेड़ में डाल दिया है में सही कर रहा हूँ, लेकिन दोनों में सम्मिलित नहीं किया? वहाँ वास्तव में उन दोनों को एक ही संरचना का उपयोग करता है, तो वे विभिन्न डेटा प्रकार वैसे भी कर रहे हैं के लिए बहुत कारण नहीं है। आप दोनों प्रकार में एक ही डाटा डालने रहे हैं, तो आप संभावित सूची से गुजरने अगर आप इस तरह की कार्रवाई के लिए किसी भी उपयोग किया था करने के लिए पेड़ से गुजरने से स्विच कर सकते हैं।

आप दोनों सूचियों में डेटा डालने कर रहे हैं, यह अपने समग्र नोड संरचना का उपयोग करने स्मृति की बचत होगी। मैं द्विआधारी पेड़ में पहले सम्मिलित होगा, तो लिंक्ड सूची में आवंटित नोड सम्मिलित करें। आप वास्तव में एक शुद्ध लिंक्ड सूची या एक द्विआधारी खोज के पेड़ के साथ खत्म नहीं होगा, लेकिन यह या तो एक तरह चल जा करने में सक्षम होगा।

09/03/2011 को 21:08
का स्रोत उपयोगकर्ता

वोट
0

वास्तव में, डेटा आइटम दोनों सूचियों में डाला जा सकता है। (सांसारिक) काम करने के प्रयोजन के सेट में दो अलग-अलग तत्वों में डेटा सेट सॉर्ट करने के लिए है।

तो उस के साथ कहा, मैं स्मृति नहीं सहेजी जा रही हैं? 2 नोड्स मैं 5 संकेत के साथ अंत के संयोजन, अगर मैं उन्हें अलग मैं 6 का उपयोग होगी इसके अलावा मैं वास्तव में केवल डेटा के एक समूह इस तरह से है छोड़ दिया है। अगर मैं 250 डेटा आइटम का ट्रैक रखने के लिए किया था, मैं बजाय 1250 संकेत में से एक समूह 750 के 2 सूचियों शायद मैं गलत समझ रहा हूँ कि क्या वास्तव में सूचक कॉल के साथ आवंटित हो जाता होगा।

09/03/2011 को 21:59
का स्रोत उपयोगकर्ता

वोट
0

इस सवाल का जवाब क्या था?

अपने डेटा की तुलना में (हममम) मेगाबाइट कम है, तो स्मृति की खपत के बारे में चिंता मत करो। 1 या 2 गीगाबाइट आज सामान्य कंप्यूटर में विशिष्ट है।

कितना बड़ा आइटम हैं? 32 चार? संकुचित मल्टीमीडिया के 64k? कुछ बड़ा?

कैसे उचित यह दोनों तकनीकों का उपयोग कर एक आइटम व्यवस्थित करने के लिए है? डेटा वास्तव में एक ही है, तो एक 5 सूचक संरचना रुचिकर लगती है किसी को एक आदेश में एक नोड खोजने के लिए और फिर अन्य आदेश में संबंधित नोड्स ब्राउज़ कर सकते हैं।

आइटम असंबंधित, कुछ चाक, कुछ पनीर हैं? वे बहुआयामी हैं? कर्मियों के रिकॉर्ड? ऑडियो फ़ाइल विवरण? व्यंजनों?

स्कूल में, एक अच्छा शिक्षक आम तकनीकों और विषयों के साथ आप अनुभव देने के लिए कोशिश कर रहा है। बस कला वर्ग, या रचना की तरह। पेंसिल, पेस्टल, 5 पैरा निबंध। तो शिक्षक आप दो विभिन्न वर्गों और कंस्ट्रक्टर लिखने के लिए चाहते हो सकता है। डेटा, अन्य डेटा के लिए अलग से एक के एक भाग के लिए एक struct का प्रयोग करें। या फिर एक ही। सिर्फ इसलिए कि।

स्कूल के बाहर, डेटा एक प्रारूप में आता है और वहाँ / इसके साथ उस पर वांछित संचालन कर रहे हैं। "उपयोग मामलों" कैसे डेटा प्रयोग किया जाता है के बारे में कहानियां, क्या रखा जाना है, क्या एल्गोरिदम किया जाता है।

इस के बिंदु bimodal खोज, orthogonal संकेत के 2 जोड़ी हो सकता है। यह यूनियन, जहां प्रत्येक आइटम एक सूची या एक पेड़, लेकिन दोनों नहीं एक ही समय में साथ asssociated है हो सकता है। यह lightwieght सबसेट, पेड़ और सूचियों, कि तुलना में और विपरीत है की बाढ़ हो सकती है ...

संदेह होने पर, "डाटा संरचनाओं + एल्गोरिदम = कार्यक्रमों"। लेकिन यह पता है कि बिंदु शिक्षक बनाने के लिए कोशिश कर रहा है भुगतान करता है, और आप उनके नेतृत्व का पालन करना चाहते हैं। (आमतौर पर, स्कूल में, है न।)

12/04/2011 को 01:51
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more