c - Get the variable value from a previous struct in arrays of structs -
मेरे पास निम्न स्ट्रेट है:
struct V {int d; इंट टिप; चार नाज़ीव [10]; इंट वेजा; इंट टीज़िना; }; टाइपिंगफ स्ट्रैटफेट वी वर्टेक्स; निम्नलिखित घोषणा:
शून्य क्रिएणेंजे (वर्टेक्स सिवोरोवी []); निम्नलिखित मुख्य कार्य:
int main () {int n = 15; वर्टेक्स सिवोरोवी [एन]; Vertex * pokazivac = & amp; cvorovi [n]; kreiranje (pokazivac); } और यह क्रिएरिन्ज फ़ंक्शन के पीछे वाला कोड है:
शून्य क्रिएणेंजे (वर्टेक्स क्वोरोवी []) {int x, y, d, f, जी; Int i = 0; Int brojac = 0; चार z [10]; चार लाइन [50]; चार पंक्तिवाला [50]; FILE * fr; फ़ाइल * एफपी; Fr = fopen ("nodes.txt", "rt"); Fp = fopen ("edges.txt", "rt"); जबकि (fgets (रेखा, 50, एफआर)! = नल) {sscanf (पंक्ति, "% d |% d% s", & amp; x, & amp; y; & amp; z); Cvorovi [n] .d = x; Cvorovi [n] .tip = y; स्ट्रक्पी (cvorovi [n]। Naziv, z); अगर (ब्रोज़क और एलटी; एन) {fgets (पंक्तिवाला, 50, एफपी)! = नल; Sscanf (पंक्तिबद्ध, "% d-% d,% d", & amp; डी, & amp; एफ, & amp; जी); अगर (cvorovi [n-1]। डी == डी) {printf ("\ n Cvor prosli je% d \ n", cvorovi [एन -1]। डी); Printf ("\ n% d \ n", डी); Cvorovi [n] .veza = y; सिवोरोवी [एन] .टेज़िना = जी; } और {cvorovi [n] .veza = y; सिवोरोवी [एन] .टेज़िना = जी; }} ब्रॉजेक ++; } Fclose (fr); fclose (एफपी); } फ़ाइलें इस तरह से हैं:
edges.txt 1-2,4 1-3,5 nodes.txt 1 | 1 EL_01 2 | 2 TF_01 nodes.txt की पहली पंक्ति में, पहले नंबर आईडी को प्रस्तुत करता है, जिसका उपयोग edges.txt में किया जाता है। मेरी समस्या निम्न है - अगर आईडी में एक से अधिक कनेक्शन हैं जो edges.txt में दिए गए हैं (उदाहरण के शो की तरह)?
मेरी समस्या निम्न है- मैं कैसे जांच सकता हूं और निर्दिष्ट कर सकता हूं अगर ID में किनों से एक से अधिक कनेक्शन हैं जो किनारों में दिए गए हैं (उदाहरण के उदाहरण की तरह)? < / P>
प्रोग्राम में ग्राफ का प्रतिनिधित्व करने के कई तरीके हैं। मुझे लगता है कि आपके मामले में सबसे आसान होगा या:
int AdjacencyMatrix [n] [n]; कहीं न कहीं मुख्य (): मैमेटसेट (एडजैंसेंसी मैट्रिक्स, 0, साइफफ (एडजैंसी मैट्रिक्स));
अपने रीडर फंक्शन में (क्रेरींजे):
fgets (पंक्तिबद्ध, 50, एफपी)! = नल; Sscanf (पंक्तिबद्ध, "% d-% d,% d", & amp; डी, & amp; एफ, & amp; जी); Int से = डी; Int to = f; स्थिरता मैट्रिक्स [से] [to] = 1 एडजैंसी मैट्रिक्स [करने के लिए] [से] = 1; & Lt; & lt; - यदि यह अनग्रेड ग्राफ है, तो अगर आप नोड के एक्स कनेक्शन को देखना चाहते हैं, तो इसका उपयोग करें:
के लिए (i = 0; i & lt; n; ++ i) {यदि (एडजेन्सेंसी मैट्रिक्स [एक्स] [आई] == 1) {printf ("नोड% d लिंक से% d \ n", एक्स, आई); }}
Comments
Post a Comment