Tuesday 15 July 2014

c - How to call the root/parent of a struct -


ऐसा मेरे स्ट्रेट की तरह दिखता है:

  संरचना निर्देशांक {int x; Int y; Int कदम; संरचना निर्देशांक * छोड़ दिया; संरचना निर्देशांक * सही; संरचना निर्देशांक * अप; संरचना निर्देशांक * नीचे; } * जड़; Typedef संरचना निर्देशांक * Coor;   

मैं इस तरह कई structs का एक पेड़ बना रहा हूँ और एक निश्चित बिंदु पर मैं एक संरचना की जड़ के डेटा (एक्स, वाई) की जांच करना चाहूंगा। < P> मैं इस संरचना रूट (माता पिता) के डेटा को कैसे प्राप्त करूं?

* संपादित करें

यह मेरा सब कोड है (न कि लंबे समय तक) : <पूर्व> // // main.c // C-3 // // निमरोड शाई द्वारा निर्मित 6/21/13 // कॉपीराइट (सी) 2013 निमरोद शाई सर्वाधिकार सुरक्षित। // # शामिल करें & lt; stdio.h & gt; # लंबाई को परिभाषित 2 संरचना निर्देशांक {int x; Int y; Int कदम; संरचना निर्देशांक * छोड़ दिया; संरचना निर्देशांक * सही; संरचना निर्देशांक * अप; संरचना निर्देशांक * नीचे; } * जड़; Typedef संरचना निर्देशांक * Coor; Int isValidCoordinate (संरचना निर्देशांक * aCoordinate, int x, int y, int map [लंबाई] [लंबाई]) {यदि ((x> = 0) & amp; amp; amp; (x & lt; = लंबाई) & amp; amp; (y & Gt; = 0) & amp; amp; amp; (y & lt; = लंबाई) & amp; amp; मानचित्र [या] [x]) {for (int i = 0; i & lt; aCoordinate - & gt; कदम; i ++) {aCoordinate = एक मंडल - & gt; पिता; अगर (aCoordinate- & gt; x == x & amp; aCoordinate- & gt; y == y) {वापसी 0; }} 1 वापसी; } और {वापसी 0; }} Coor insertDataToTree (Coor रूट, int x, int y, int नक्शा [लंबाई] [लंबाई], int कदम) {कदम ++; If (root == NULL) {root = (कौर) malloc (sizeof (Coor)); रूट- & gt; x = x; रूट- & gt; y = y; रूट- & gt; चरण = चरण; जड़ - & gt; बायां = रूट - & gt; सही = रूट - & gt; अप = रूट - & gt; डाउन = नल; } // बाएं अगर (हैवैलिड कॉरडिनेट (रूट, रूट -> एक्स - 1, रूट - & gt; वाई, मैप)) {printf ("f"); रूट- & gt; बायां = सम्मिलित करेंटाटाट्री (रूट - & gt; बाएं, x - 1, y, नक्शे, चरण); } // सही अगर (isValidCoordinate (रूट, रूट - & gt; x + 1, रूट - & gt; y, मानचित्र)) {printf ("f"); रूट- & gt; right = insertDataToTree (रूट - & gt; सही, x + 1, y, नक्शे, चरण); } // अप अगर (isValidCoordinate (रूट, रूट - & gt; x, रूट - & gt; y - 1, मानचित्र)) {printf ("f"); रूट- & gt; ऊपर = insertDataToTree (रूट - & gt; ऊपर, x, y - 1, मानचित्र, चरण); } // नीचे अगर (isValidCoordinate (रूट, रूट - & gt; x, root - & gt; y + 1, मानचित्र)) {printf ("f"); रूट- & gt; डाउन = डाटडेटाटॉरी (रूट - & gt; डाउन, एक्स, वाई + 1, मैप, चरण); } कूर ggg = NULL; वापसी जीजीजी; } Int main (int argc, const char * argv []) {int map [length] [length] = {{0,0}, {0}}}; स्टार्टपॉइंट; StartPoint.x = 0; StartPoint.y = 0; StartPoint.steps = -1; InsertDataToTree (रूट, startPoint.x, startPoint.y, मानचित्र, startPoint.steps); // यहाँ सम्मिलित करें कोड ... printf ("हैलो, विश्व! \ N"); वापसी 0; }

इस कोड का उद्देश्य एक निश्चित प्रारंभ बिंदु से एक मैट्रिक्स के अंदर पूरे पथ को एक पेड़ में सभी संभावित बिंदुओं के लिए शाखा = पथ के साथ मानचित्रण कर रहा है।

है - मुझे इस पेड़ को जोड़ते हुए एक बिंदु पर एक चेक की ज़रूरत है कि यह समन्वय है इसकी शाखा में दोहराया नहीं जा रहा है (यह दिमाग में नहीं है अगर यह अन्य शाखाओं में प्रतीत होता है)। < P> लेकिन मुझे नहीं पता कि किसी विशिष्ट संरचना की जड़ के मूल्यों को कैसे प्राप्त किया जाए।

मुझे आशा है कि मैं अब स्पष्ट हूँ और कोई मुझे इस भयंकर वाक्यविन्यास के साथ मदद कर सकता है। मैं आमतौर पर उद्देश्य-सी में कार्यक्रम)।

धन्यवाद!

रूट- & gt; x और रूट- & gt; y , यह मानते हुए कि आपने इसे किसी अन्य कोड में ठीक से आवंटित किया है जो आप हमें नहीं दिखा रहे हैं। < / html>

No comments:

Post a Comment