عربيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

gvpr - عبر الإنترنت في السحابة

قم بتشغيل gvpr في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر gvpr الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


gvpr - مسح نمط الرسم البياني ولغة المعالجة

موجز


gvpr [-icnqV؟] [ -o ملف ] [ -a وسائط ] [ "بروغ" | -f com.progfile ] [ ملفات ]

الوصف


gvpr (المعروف سابقا باسم gpr) هو محرر تدفق بياني مستوحى من AWK. ينسخ المدخلات
الرسوم البيانية لمخرجاتها ، وربما تحويل هيكلها وسماتها ، وخلق جديد
الرسوم البيانية ، أو طباعة معلومات عشوائية. نموذج الرسم البياني هو الذي قدمه
libcgraph(3). بخاصة، gvpr يقرأ ويكتب الرسوم البيانية باستخدام لغة النقطة.

في الأساس، gvpr يتجاوز كل رسم بياني إدخال ، يُشار إليه بالرمز $G، وزيارة كل عقدة وحافة ،
مطابقته مع قواعد الإجراء المسند المتوفرة في برنامج الإدخال. القواعد
تقييمها بالترتيب. لكل مسند تقييم إلى صحيح ، الإجراء المقابل هو
إجراء. أثناء الاجتياز ، يتم الإشارة إلى العقدة أو الحافة الحالية التي تتم زيارتها بواسطة $.

لكل رسم بياني إدخال ، يوجد رسم بياني فرعي مستهدف ، يُشار إليه بالرمز $T، فارغة في البداية ومستخدمة
لتجميع الكيانات المختارة ، ورسم بياني للإخراج ، $O، تستخدم للمعالجة النهائية وبعد ذلك
مكتوب للإخراج. بشكل افتراضي ، يكون الرسم البياني الناتج هو الرسم البياني الهدف. الرسم البياني الناتج
يمكن تعيينها في البرنامج أو ، بمعنى محدود ، في سطر الأوامر.

OPTIONS


الخيارات التالية مدعومة:

-a وسائط
السلسلة وسائط تنقسم إلى رموز مفصولة بمسافات بيضاء ، مع الفرد
الرموز المميزة المتاحة كسلاسل في ملف gvpr برنامج مثل ARGV [0] ، ... ، ARGV [ARGC-1].
أحرف المسافات البيضاء ضمن سلاسل فرعية ذات علامات اقتباس مفردة أو مزدوجة ، أو مسبوقة بـ a
الشرطة المائلة للخلف ، يتم تجاهلها كفواصل. بشكل عام ، يتم إيقاف تشغيل حرف الخط المائل العكسي
أي معنى خاص للحرف التالي. لاحظ أن الرموز المميزة مشتقة من
متعدد -a الأعلام متسلسلة.

-c استخدم الرسم البياني المصدر باعتباره الرسم البياني الناتج.

-i اشتق الامتداد الفرعي للرسم البياني الناتج عن العقدة في سياق
الرسم البياني الجذر.

-o ملف
يتسبب في كتابة تيار الإخراج إلى الملف المحدد ؛ بشكل افتراضي ، الإخراج هو
كتبت إلى المعياري.

-f com.progfile
استخدم محتويات الملف المحدد كبرنامج لتنفيذه على الإدخال. لو
com.progfile يحتوي على حرف مائل ، يتم أخذ الاسم على أنه اسم مسار الملف.
على خلاف ذلك، gvpr سيستخدم الدلائل المحددة في متغير البيئة
GVPPRPATH للبحث عن الملف. لو -f لا تعطى ، gvpr سيستخدم أول غير
حجة الخيار مثل البرنامج.

-q يوقف رسائل التحذير.

-n إيقاف قراءة الرسم البياني مسبقًا. بشكل افتراضي ، المتغير NG على الرسم البياني التالي
لتتم معالجتها. يتطلب هذا قراءة الرسم البياني التالي قبل معالجة ملف
الرسم البياني الحالي ، والذي قد يحجب إذا تم إنشاء الرسم البياني التالي فقط استجابةً لـ
بعض الإجراءات المتعلقة بمعالجة الرسم البياني الحالي.

-V يتسبب البرنامج في طباعة معلومات الإصدار والخروج.

-? يتسبب البرنامج في طباعة معلومات الاستخدام والخروج.

العمليات


المعامل التالي مدعوم:

ملفات أسماء الملفات التي تحتوي على رسم بياني واحد أو أكثر بلغة النقطة. إذا كان الجواب لا -f خيار
يتم حذف الاسم الأول من القائمة واستخدامه كبرنامج إدخال.
إذا كانت قائمة الملفات فارغة ، ستدين وسوف تستخدم.

برامج


A gvpr يتكون البرنامج من قائمة جمل الفعل ‐ المسند ، مع وجود أحد الأشكال:

ابدأ { عمل }

BEG_G { عمل }

N [ فاعل ] { عمل }

E [ فاعل ] { عمل }

END_G { عمل }

END { عمل }

يمكن أن يحتوي البرنامج على واحد على الأكثر من كل ملف ابدأ, END_G و END شروط. هناك يمكن
يكون أي عدد من BEG_G, N و E البيانات ، يتم تطبيق الأول على الرسوم البيانية ، والثاني على
العقد ، والثالث إلى الحواف. يتم فصل هذه إلى كتل ، كتلة تتكون من
اختياري BEG_G البيان وجميع N و E التصريحات حتى اليوم التالي BEG_G بيان ، إذا
أي. دلالات المستوى الأعلى لـ a gvpr البرنامج هم:

قييم ال ابدأ شرط ، إن وجد.
لكل رسم بياني إدخال G {
لكل كتلة {
المجموعات G كرسم بياني حالي وكائن حالي.
قييم ال BEG_G شرط ، إن وجد.
لكل عقدة وحافة في G {
قم بتعيين العقدة أو الحافة ككائن حالي.
قييم ال N or E البنود ، حسب الاقتضاء.
}
}
المجموعات G ككائن حالي.
قييم ال END_G شرط ، إن وجد.
}
قييم ال END شرط ، إن وجد.

تصرفات ابدأ, BEG_G, END_G و END يتم تنفيذ الجمل عندما تكون البنود
مقيمة. ل N or E البنود ، إما المسند أو الإجراء يمكن حذفه. إن كان هناك
ليس مسندًا مع إجراء ، يتم تنفيذ الإجراء على كل عقدة أو حافة ، مثل
ملائم. إذا لم يكن هناك إجراء وتقييم المسند إلى صحيح ، فإن المرتبط به
تتم إضافة العقدة أو الحافة إلى الرسم البياني الهدف.

يتم تقييم الكتل بالترتيب الذي تحدث به. داخل الكتلة ، فإن N شروط
(E الجمل ، على التوالي) بالترتيب الذي حدثت به. لاحظ ، مع ذلك ،
ذلك داخل كتلة ، N or E قد تكون الجمل متشابكة ، اعتمادًا على ترتيب الاجتياز.

المسندات والإجراءات عبارة عن تسلسلات من العبارات في لهجة C مدعومة من
على سبيل المثال(3) مكتبة. الفرق الوحيد بين المسندات والأفعال هو أن الأول
يجب أن يكون من نوع يمكن تفسيره على أنه إما صواب أو خطأ. هنا المعتاد C
يتم اتباع الاصطلاح ، حيث تعتبر القيمة غير الصفرية صحيحة. هذا من شأنه أن يشمل
السلاسل غير الفارغة والمراجع غير الفارغة للعقد والحواف وما إلى ذلك ، ومع ذلك ، إذا كانت السلسلة تستطيع ذلك
يتم تحويلها إلى عدد صحيح ، يتم استخدام هذه القيمة.

بالإضافة إلى أنواع القاعدة C المعتادة (باطل, مادبا, دبابة, الطفو, التداول الطويل, غير موقعة و مضاعفة),
gvpr ويوفر سلسلة كمرادف لـ فحم *، وأنواع الرسم البياني عقدة_t, حافة_t,
Graph_t و obj_t. obj_t النوع يمكن اعتباره نوعًا فائقًا للخرسانة الثلاثة الأخرى
أنواع. يتم الحفاظ على النوع الأساسي الصحيح ديناميكيًا. إلى جانب هذه الأنواع الأساسية ، فإن
فقط تعبيرات النوع المدعومة الأخرى هي المصفوفات (الترابطية).

تتبع الثوابت بناء جملة C ، ولكن يمكن اقتباس السلاسل مع أي منهما "..." or "...". gvpr
يقبل تعليقات C ++ وكذلك تعليقات نوع cpp ‐. بالنسبة لهذا الأخير ، إذا كان السطر يبدأ بـ
حرف "#" ، يتم تجاهل باقي السطر.

يمكن أن تكون العبارة إعلانًا عن دالة أو متغيرًا أو مصفوفة أو ملفًا تنفيذيًا
إفادة. للإعلانات ، هناك مجال واحد. تحتوي إقرارات المصفوفة على الشكل:

نوع مجموعة [ type0 ]

أين type0 هو اختياري. إذا تم توفيره ، سيقوم المحلل اللغوي بفرض كل الصفيف
الاشتراكات لها النوع المحدد. إذا لم يتم توفيره ، يمكن أن تكون الكائنات من جميع الأنواع
تستخدم كنصوص. كما في C ، يجب التصريح عن المتغيرات والمصفوفات. على وجه الخصوص ، و
سيتم تفسير المتغير غير المعلن على أنه اسم سمة للعقدة أو الحافة أو
الرسم البياني ، اعتمادًا على السياق.

يمكن أن تكون العبارات القابلة للتنفيذ واحدة مما يلي:

{ [ بيان ] }
التعبير // شائع فار = التعبير
إذا ( التعبير ) بيان [ آخر بيان ]
ل( التعبير ; التعبير ; التعبير ) بيان
ل( مجموعة [ فار ]) بيان
forr ( مجموعة [ فار ]) بيان
في حين ( التعبير ) بيان
التبديل ( التعبير ) حقيبة البيانات
استراحة [ التعبير ]
استمر [ التعبير ]
عائد أعلى [ التعبير ]
العناصر الموجودة بين قوسين اختيارية.

في الشكل الثاني من For البيان و forr البيان ، المتغير فار ومن المقرر أن
كل قيمة تستخدم كمؤشر في المصفوفة المحددة ثم المرتبطة بها بيان is
مقيمة. بالنسبة للمؤشرات الرقمية والسلسلة ، يتم إرجاع المؤشرات في زيادة
(تنازلي) الترتيب الرقمي أو المعجمي لـ For (forr، على التوالى). يمكن استخدام هذا
للفرز.

يمكن أن تظهر تعريفات الوظائف فقط في ملف ابدأ الشرط.

تتضمن التعبيرات تعبيرات C المعتادة. مقارنات السلاسل باستخدام == و != علاج
المعامل الأيمن كنمط لغرض مطابقة التعبير العادي. أنماط
تستخدم KSH(1) بناء جملة نمط تطابق الملف. (للحصول على مساواة سلسلة بسيطة ، استخدم ستركمب
وظيفة.

gvpr سيحاول استخدام تعبير كسلسلة أو قيمة رقمية بالشكل المناسب. كلاهما
ستؤدي قوالب C-like وقوالب الوظائف إلى إجراء تحويلات ، إن أمكن.

تعبيرات من نوع رسومي (على سبيل المثال ، Graph_t ، node_t ، حافة_t ، obj_t) قد يتبعها أ
مرجع المجال في شكل .الاسم. القيمة الناتجة هي قيمة السمة
عين الاسم من كائن معين. بالإضافة إلى ذلك ، في سياقات معينة ، غير معلن ،
يعتبر المعرف غير المعدل اسم سمة. على وجه التحديد ، مثل هذه المعرفات
تشير إلى سمات العقدة أو الحافة الحالية ، على التوالي ، في N و E البنود و
الرسم البياني الحالي في BEG_G و END_G شروط.

كالعادة في libcgraph(3) النموذج ، السمات ذات قيمة سلسلة. فضلاً عن ذلك، gvpr
يدعم سمات زائفة معينة لكائنات الرسم البياني ، وليس بالضرورة أن تكون ذات قيمة سلسلة. هؤلاء
تعكس الخصائص الجوهرية لكائنات الرسم البياني ولا يمكن للمستخدم تعيينها.

رئيس : عقدة_t
رأس الحافة.

ذيل : عقدة_t
ذيل الحافة.

الاسم : سلسلة
اسم الحافة أو العقدة أو الرسم البياني. اسم الحافة له شكل "<tail‐
الاسم>[]"، أين هو "->"أو"--" اعتمادا علي
سواء تم توجيه الرسم البياني أم لا. جزء القوس [] يظهر فقط إذا كان
الحافة لديها مفتاح غير تافه.

غير متفق عليه : مادبا
أصل العقدة.

متفوقة : مادبا
الدرجة الخارجية للعقدة.

الدرجة العلمية : مادبا
درجة العقدة.

جذر : Graph_t
الرسم البياني الجذر لكائن. جذر الرسم البياني الجذر هو نفسه.

أصل : Graph_t
الرسم البياني الأصل للرسم البياني الفرعي. أصل الرسم البياني الجذر هو اغية

n_ الحواف : مادبا
عدد الحواف في الرسم البياني

n_nodes : مادبا
عدد العقد في الرسم البياني

توجه : مادبا
صحيح (غير صفر) إذا كان الرسم البياني موجهًا

صارم : مادبا
صحيح (غير صفر) إذا كان الرسم البياني صارمًا

مدمج وظائف


الوظائف التالية مدمجة gvpr. هذه الدالات تعيد المراجع إلى الرسم البياني
عودة الأشياء اغية في حالة الفشل.

الرسوم البيانية و رسم بياني ثانوي
رسم بياني(s : سلسلة, t : سلسلة): Graph_t
ينشئ رسمًا بيانيًا اسمه s والذي يتم تحديد نوعه بواسطة السلسلة t.
تجاهل القضية ، والشخصيات U, D, S, N لديك تفسير غير موجه ،
موجهة وصارمة وغير صارمة على التوالي. لو t فارغ ، موجه ، غير
يتم إنشاء رسم بياني صارم.

سوبج(g : Graph_t, s : سلسلة): Graph_t
ينشئ رسمًا بيانيًا فرعيًا في الرسم البياني g بالاسم s. إذا كان الرسم البياني الفرعي موجودًا بالفعل ، فهو كذلك
عاد.

هو(g : Graph_t, s : سلسلة): Graph_t
إرجاع الرسم البياني الفرعي في الرسم البياني g بالاسم s، إذا كان موجودًا ، أو اغية غير ذلك.

com.fstsubg(g : Graph_t): Graph_t
إرجاع الرسم البياني الفرعي الأول في الرسم البياني gالطرق أو اغية إذا لم يكن هناك شيء.

com.nxtsubg(sg : Graph_t): Graph_t
إرجاع الرسم البياني الفرعي التالي بعد sgالطرق أو اغية.

com.isDirect(g : Graph_t): مادبا
يعود صحيحًا إذا وفقط إذا g موجه.

صارم(g : Graph_t): مادبا
يعود صحيحًا إذا وفقط إذا g صارم.

ن العقد(g : Graph_t): مادبا
تُرجع عدد العقد في g.

حواف(g : Graph_t): مادبا
إرجاع عدد الحواف في g.

العقد
العقدة(sg : Graph_t, s : سلسلة): عقدة_t
ينشئ عقدة في الرسم البياني g من الاسم s. إذا كانت هذه العقدة موجودة بالفعل ، يتم إرجاعها.

عقدة فرعية(sg : Graph_t, n : عقدة_t): عقدة_t
يدخل العقدة n في الرسم البياني الفرعي g. تُرجع العقدة.

com.fstnode(g : Graph_t): عقدة_t
تُرجع العقدة الأولى في الرسم البياني gالطرق أو اغية إذا لم يكن هناك شيء.

com.nxtnode(n : عقدة_t): عقدة_t
إرجاع العقدة التالية بعد n في الرسم البياني الجذر ، أو اغية.

nxtnode_sg(sg : Graph_t, n : عقدة_t): عقدة_t
إرجاع العقدة التالية بعد n in sgالطرق أو اغية.

هو العقدة(sg : Graph_t, s : سلسلة): عقدة_t
يبحث عن عقدة في الرسم البياني (الفرعي) sg من الاسم s. في حالة وجود مثل هذه العقدة ، يتم إرجاعها.
على خلاف ذلك، اغية يتم إرجاع.

هو(sg : Graph_t, n : عقدة_t): مادبا
إرجاع غير الصفر إذا العقدة n يقع في الرسم البياني (الفرعي) sg، أو صفر خلاف ذلك.

غير متصل(sg : Graph_t, n : عقدة_t): مادبا
إرجاع indegree العقدة n في الرسم البياني (الفرعي) sg.

أعلى من(sg : Graph_t, n : عقدة_t): مادبا
ترجع الدرجة الخارجية للعقدة n في الرسم البياني (الفرعي) sg.

درجة(sg : Graph_t, n : عقدة_t): مادبا
تُرجع درجة العقدة n في الرسم البياني (الفرعي) sg.

حواف
حافة(t : عقدة_t, h : عقدة_t, s : سلسلة): حافة_t
يخلق حافة مع عقدة الذيل tعقدة الرأس h والاسم s في الرسم البياني الجذر. إذا كان
الرسم البياني غير موجه ، والتمييز بين عقد الرأس والذيل غير مهم.
إذا كانت هذه الحافة موجودة بالفعل ، يتم إرجاعها.

حافة_ص(sg : Graph_t, t : عقدة_t, h : عقدة_t, s : سلسلة): حافة_t
يخلق حافة مع عقدة الذيل tعقدة الرأس h والاسم s في الرسم البياني (الفرعي) sg (وكل
الرسوم البيانية الوالدين). إذا كان الرسم البياني غير موجه ، فإن التمييز بين الرأس والذيل
العقد غير مهمة. إذا كانت هذه الحافة موجودة بالفعل ، يتم إرجاعها.

سوبيدج(g : Graph_t, e : حافة_t): حافة_t
يدخل الحافة e في الرسم البياني الفرعي g. إرجاع الحافة.

هو الحافة(t : عقدة_t, h : عقدة_t, s : سلسلة): حافة_t
يبحث عن حافة مع عقدة الذيل tعقدة الرأس h والاسم s. إذا كان الرسم البياني
غير موجه ، فإن التمييز بين عقد الرأس والذيل غير مهم. إذا كان هذا
الحافة موجودة ، يتم إرجاعها. خلاف ذلك، اغية يتم إرجاع.

isEdge_sg(sg : Graph_t, t : عقدة_t, h : عقدة_t, s : سلسلة): حافة_t
يبحث عن حافة مع عقدة الذيل tعقدة الرأس h والاسم s في الرسم البياني (الفرعي) sg. إذا كان
الرسم البياني غير موجه ، والتمييز بين عقد الرأس والذيل غير مهم.
في حالة وجود مثل هذه الحافة ، يتم إرجاعها. خلاف ذلك، اغية يتم إرجاع.

com.isSubedge(g : Graph_t, e : حافة_t): مادبا
ترجع قيمة غير صفرية إذا كانت الحافة e يقع في الرسم البياني (الفرعي) sg، أو صفر خلاف ذلك.

com.fstout(n : عقدة_t): حافة_t
إرجاع أول نتوء من العقدة n في الرسم البياني الجذر.

fstout_sg(sg : Graph_t, n : عقدة_t): حافة_t
إرجاع أول نتوء من العقدة n في الرسم البياني (الفرعي) sg.

com.nxtout(e : حافة_t): حافة_t
إرجاع التفوق التالي بعد e في الرسم البياني الجذر.

nxtout_sg(sg : Graph_t, e : حافة_t): حافة_t
إرجاع التفوق التالي بعد e في الرسم البياني sg.

com.fstin(n : عقدة_t): حافة_t
إرجاع أول شوكة من العقدة n في الرسم البياني الجذر.

fstin_sg(sg : Graph_t, n : عقدة_t): حافة_t
إرجاع أول شوكة من العقدة n في الرسم البياني sg.

com.nxtin(e : حافة_t): حافة_t
إرجاع الشوط التالي بعد e في الرسم البياني الجذر.

nxtin_sg(sg : Graph_t, e : حافة_t): حافة_t
إرجاع الشوط التالي بعد e في الرسم البياني sg.

com.fstedge(n : عقدة_t): حافة_t
تُرجع الحافة الأولى للعقدة n في الرسم البياني الجذر.

fstedge_sg(sg : Graph_t, n : عقدة_t): حافة_t
تُرجع الحافة الأولى للعقدة n في الرسم البياني sg.

com.nxtedge(e : حافة_t, عقدة_t): حافة_t
إرجاع الحافة التالية بعد e في الرسم البياني الجذر.

nxtedge_sg(sg : Graph_t, e : حافة_t, عقدة_t): حافة_t
إرجاع الحافة التالية بعد e في الرسم البياني sg.

مقابل(e : حافة_t, عقدة_t): عقدة_t
تُرجع العقدة الموجودة على الحافة e لا يساوي n. ترجع NULL إذا n ليس عقدة من
e. يمكن أن يكون هذا مفيدًا عند استخدام com.fstedge و com.nxtedge لتعداد جيران
n.

رسم بياني I / O
اكتب(g : Graph_t): باطل
مطبوعات g بتنسيق نقطي على تدفق الإخراج.

الكتابة(g : Graph_t, com.fname : سلسلة): باطل
مطبوعات g بتنسيق نقطة في الملف com.fname.

fwriteG(g : Graph_t, fd : مادبا): باطل
مطبوعات g في شكل نقطي على الدفق المفتوح المشار إليه بالعدد الصحيح fd.

قراءةG(com.fname : سلسلة): Graph_t
إرجاع رسم بياني مقروء من الملف com.fname. يجب أن يكون الرسم البياني بتنسيق نقطي. إذا كان الجواب لا
يمكن قراءة الرسم البياني ، اغية يتم إرجاع.

فريدج(fd : مادبا): Graph_t
إرجاع الرسم البياني التالي الذي تمت قراءته من التدفق المفتوح fd. عائدات اغية في نهاية الملف.

رسم بياني المنوعات
حذف(g : Graph_t, x : obj_t): باطل
يحذف الكائن x من الرسم البياني g. إذا g is اغية، تستخدم الدالة الرسم البياني الجذري لـ
x. إذا x هو رسم بياني أو رسم بياني فرعي ، ويتم إغلاقه ما لم يكن x مغلق.

في داخل(g : Graph_t, x : obj_t): مادبا
يعود صحيحا إذا x في الرسم البياني الفرعي g.

استنساخ(g : Graph_t, s : سلسلة): Graph_t
ينشئ استنساخًا للرسم البياني g باسم s. إذا s هو "" ، الرسم البياني الذي تم إنشاؤه يحتوي على
نفس اسم g.

استنساخ(g : Graph_t, x : obj_t): obj_t
يخلق نسخة من الكائن x في الرسم البياني g. على وجه الخصوص ، الكائن الجديد له نفس الشيء
سمات الاسم / القيمة والبنية ككائن أصلي. إذا كان الكائن بامتداد
نفس مفتاح x موجود بالفعل ، سماته مغطاة بسمات x و
تم إرجاع الكائن. إذا تم استنساخ الحافة ، فسيتم استنساخ كلا نقطتي النهاية ضمنيًا.
إذا تم استنساخ رسم بياني ، فسيتم استنساخ جميع العقد والحواف والرسوم البيانية الفرعية ضمنيًا. لو x
هو رسم بياني ، g قد يكون اغية، في هذه الحالة سيكون الكائن المستنسخ جذرًا جديدًا
رسم بياني. في هذه الحالة ، المكالمة تعادل استنساخ G (x، "").

نسخة(g : Graph_t, x : obj_t): obj_t
يقوم بإنشاء نسخة من الكائن x في الرسم البياني g، حيث يكون للكائن الجديد نفس الاسم / القيمة
سمات الكائن الأصلي. إذا كان الكائن بنفس المفتاح مثل x سابقا
موجود ، يتم تراكب سماته من قبل سمات x ويتم إرجاع الكائن. ملحوظة
أن هذه نسخة ضحلة. لو x هو رسم بياني ، وليس أيًا من عقده أو حوافه أو رسوماته الفرعية
يتم نسخها في الرسم البياني الجديد. لو x هي حافة ، يتم إنشاء نقاط النهاية إذا
ضرورية ، لكنها ليست مستنسخة. لو x هو رسم بياني ، g قد يكون اغية، في أي حالة
سيكون الكائن المستنسخ رسمًا بيانيًا جذريًا جديدًا.

نسخ(SRC : obj_t, TGT : obj_t): مادبا
ينسخ سمات الكائن SRC ليعترض TGT، والكتابة فوق أي قيم سمة
TGT في البداية.

حث(g : Graph_t): باطل
يمتد g لتمديد الرسم البياني الفرعي المستحث في العقدة في الرسم البياني للجذر.

hasAttr(SRC : obj_t, الاسم : سلسلة): مادبا
إرجاع غير صفري إذا الكائن SRC له سمة اسمه الاسم. تقوم بإرجاع 0
غير ذلك.

العتر(g : Graph_t, نوع : سلسلة, الاسم : سلسلة): مادبا
بإرجاع غير الصفر إذا كانت السمة الاسم تم تعريفه في g لكائنات
معطى نوع. بالنسبة للعقد والحواف والرسوم البيانية ، نوع يجب أن تكون "N" و "E" و "G" ،
على التوالى. تقوم بإرجاع 0 خلاف ذلك.

عاق(SRC : obj_t, الاسم : سلسلة): سلسلة
إرجاع قيمة السمة الاسم في الكائن SRC. هذا مفيد لتلك الحالات
متى الاسم تتعارض مع إحدى الكلمات الرئيسية مثل "رأس" أو "جذر". إذا كان
لم يتم التصريح عن السمة في الرسم البياني ، ستقوم الوظيفة بتهيئتها باستخدام
قيمة افتراضية "". لتجنب هذا ، يجب على المرء استخدام hasAttr or العتر وظيفة
للتحقق من وجود السمة.

مجموعة(SRC : obj_t, الاسم : سلسلة, قيمنا : سلسلة): مادبا
يحدد قيمة السمة الاسم في الكائن SRC إلى قيمنا. إرجاع 0 على النجاح ،
غير ‐ صفر عند الفشل. يرى عاق في الاعلى.

getDflt(g : Graph_t, نوع : سلسلة, الاسم : سلسلة): سلسلة
إرجاع القيمة الافتراضية للسمة الاسم في الأشياء في g من المعطى نوع. إلى
العقد والحواف والرسوم البيانية ، نوع يجب أن تكون "N" و "E" و "G" على التوالي. إذا كان
لم يتم التصريح عن السمة في الرسم البياني ، ستقوم الوظيفة بتهيئتها باستخدام
قيمة افتراضية "". لتجنب هذا ، يجب على المرء استخدام العتر وظيفة للتحقق
أن السمة موجودة.

تعيين(g : Graph_t, نوع : سلسلة, الاسم : سلسلة, قيمنا : سلسلة): مادبا
يحدد القيمة الافتراضية للسمة الاسم إلى قيمنا في الأشياء في g من المعطى
نوع. بالنسبة للعقد والحواف والرسوم البيانية ، نوع يجب أن تكون "N" و "E" و "G" على التوالي.
تُرجع 0 عند النجاح ، وغير صفر عند الفشل. يرى getDflt في الاعلى.

fstAttr(g : Graph_t, نوع : سلسلة): سلسلة
يُرجع اسم السمة الأولى للكائنات بتنسيق g من المعطى نوع. إلى
العقد والحواف والرسوم البيانية ، نوع يجب أن تكون "N" و "E" و "G" على التوالي. إن كان هناك
لا توجد سمات ، تم إرجاع السلسلة "".

nxtAttr(g : Graph_t, نوع : سلسلة, الاسم : سلسلة): سلسلة
يُرجع اسم السمة التالية للكائنات بتنسيق g من المعطى نوع بعد
السمة الاسم. الحجة الاسم يجب أن يكون اسم سمة موجودة ؛ هو - هي
ستكون عادةً القيمة المرجعة لاستدعاء سابق لـ fstAttr or nxtAttr. إلى
العقد والحواف والرسوم البيانية ، نوع يجب أن تكون "N" و "E" و "G" على التوالي. إن كان هناك
لا توجد سمات متبقية ، تم إرجاع السلسلة "".

مركب(g : Graph_t, n : عقدة_t): Graph_t
يُرجع المكون المتصل بالرسم البياني g تحتوي على عقدة n، كمخطط فرعي لـ
g. يحتوي الرسم البياني الفرعي فقط على العقد. يمكن للمرء أن يستخدم حث لإضافة الحواف. ال
وظيفة فشل ويعود اغية if n ليس في g. يعتمد الاتصال على
الرسم البياني الأساسي غير المباشر لـ g.

نوع من(الكائنات : obj_t): سلسلة
إرجاع إشارة إلى نوع الكائنات. بالنسبة للعقد والحواف والرسوم البيانية ، يتم إرجاعها
"N" و "E" و "G" على التوالي.

قفل(g : Graph_t, v : مادبا): مادبا
ينفذ قفل الرسم البياني على الرسوم البيانية الجذر. إذا كان العدد الصحيح v موجب ، والرسم البياني
مجموعة بحيث أن المكالمات المستقبلية إلى حذف ليس لها تأثير فوري. لو v هو صفر ، و
الرسم البياني مفتوح. إذا كانت هناك مكالمة لحذف الرسم البياني أثناء وجوده
مغلق ، الرسم البياني مغلق. لو v سلبي ، لا شيء يتم القيام به. في جميع الحالات ، فإن
تم إرجاع قيمة القفل السابقة.

سلاسل
sprintf(معاهدة المواد الانشطارية : سلسلة, ): سلسلة
تُرجع السلسلة الناتجة عن تنسيق قيم التعبيرات
تحدث بعد معاهدة المواد الانشطارية وفقا لل printf(3) شكل معاهدة المواد الانشطارية

com.gsub(شارع : سلسلة, بات : سلسلة): سلسلة

com.gsub(شارع : سلسلة, بات : سلسلة, استبدل : سلسلة): سلسلة
عائدات شارع مع مطابقة جميع السلاسل الفرعية بات تم حذفه أو استبداله بـ استبدل,
على التوالي.

فرعية(شارع : سلسلة, بات : سلسلة): سلسلة

فرعية(شارع : سلسلة, بات : سلسلة, استبدل : سلسلة): سلسلة
عائدات شارع مع مطابقة السلسلة الفرعية في أقصى اليسار بات تم حذفه أو استبداله بـ استبدل,
على التوالى. يمكن استخدام الحرفين "^" و "$" في البداية والنهاية ،
على التوالي من بات لربط النمط ببداية أو نهاية شارع.

SUBSTR(شارع : سلسلة, IDX : مادبا): سلسلة

SUBSTR(شارع : سلسلة, IDX : مادبا, ليون : مادبا): سلسلة
تُرجع السلسلة الفرعية لـ شارع بدءا من الموقف IDX إلى نهاية السلسلة أو
من الطول ليون، على التوالى. تبدأ الفهرسة في 0. إذا IDX سلبي أو IDX is
أكبر من طول شارع، حدث خطأ فادح. وبالمثل ، في الثانية
حالة ، إذا ليون سلبي أو IDX + ليون أكبر من طول شارع، قاتلة
يحدث خطأ.

ستركمب(s1 : سلسلة, s2 : سلسلة): مادبا
يوفر وظيفة C القياسية ستركمب(3).

الطول(s : سلسلة): مادبا
ترجع طول السلسلة s.

مؤشر(s : سلسلة, t : سلسلة): مادبا

rindex(s : سلسلة, t : سلسلة): مادبا
إرجاع فهرس الحرف في السلسلة s حيث النسخة الموجودة في أقصى اليسار (أقصى اليمين)
من السلسلة t يمكن العثور عليها ، أو -1 إذا t ليس سلسلة فرعية من s.

مباراة(s : سلسلة, p : سلسلة): مادبا
إرجاع فهرس الحرف في السلسلة s حيث تطابق النمط في أقصى اليسار
p يمكن العثور عليها ، أو -1 إذا لم يكن هناك سلسلة فرعية من s اعواد الثقاب p.

العلبة(s : سلسلة): سلسلة
يسترجع نسخة من s مع الأحرف الأبجدية المحولة إلى الأحرف الكبيرة.

أدنى(s : سلسلة): سلسلة
يسترجع نسخة من s مع تحويل الأحرف الأبجدية إلى أحرف صغيرة.

شريعة(s : سلسلة): سلسلة
يسترجع نسخة من s مناسب لاستخدامه كمعرف في ملف نقطي.

أتش تي أم أل(g : Graph_t, s : سلسلة): سلسلة
إرجاع نسخة `` سحرية '' من s كسلسلة HTML. عادة ما يتم استخدام هذا ل
إرفاق تسمية تشبه HTML إلى كائن الرسم البياني. لاحظ أن السلسلة التي تم إرجاعها تعيش في
g. على وجه الخصوص ، سيتم تحريرها عندما g مغلق ويعمل كسلسلة HTML ،
يجب استخدامه مع كائن g. بالإضافة إلى ذلك ، لاحظ أن قوس الزاوية
الاقتباسات لا ينبغي أن تكون جزءا من s. سيتم إضافة هذه إذا g هو مكتوب في ملموسة DOT
تنسيق.

ishtml(s : سلسلة): مادبا
إرجاع غير الصفر إذا وفقط إذا s هي سلسلة HTML.

xOf(s : سلسلة): سلسلة
إرجاع السلسلة "x" لو s له شكل "x,yحيث كلاهما x و y رقمية.

أنت(s : سلسلة): سلسلة
إرجاع السلسلة "y" لو s له شكل "x,yحيث كلاهما x و y رقمية.

جميع(s : سلسلة): سلسلة
إرجاع السلسلة "llx,LLY" لو s له شكل "llx,LLY,أوركس,أوروغواي"، حيث كل من llx,
LLY, أوركسو أوروغواي رقمية.

urOf (s)
urOf(s : سلسلة): سلسلة إرجاع السلسلة "أوركس,أوروغواي" لو s له الشكل
"llx,LLY,أوركس,أوروغواي"، حيث كل من llx, LLY, أوركسو أوروغواي رقمية.

com.sscanf(s : سلسلة, معاهدة المواد الانشطارية : سلسلة, ): مادبا
بمسح السلسلة s، واستخراج القيم وفقًا لـ com.sscanf(3) شكل معاهدة المواد الانشطارية.
يتم تخزين القيم في العناوين التالية معاهدة المواد الانشطارية، العناوين التي تحتوي على النموذج &v,
أين v هو بعض المتغيرات المعلنة من النوع الصحيح. إرجاع عدد العناصر
تم فحصها بنجاح.

انقسم(s : سلسلة, آر : مجموعة, سبس : سلسلة): مادبا

انقسم(s : سلسلة, آر : مجموعة): مادبا

رموز(s : سلسلة, آر : مجموعة, سبس : سلسلة): مادبا

رموز(s : سلسلة, آر : مجموعة): مادبا
انقسم وظيفة يكسر السلسلة s في الحقول ، بينما رموز وظيفة
يكسر السلسلة إلى رموز. يتكون الحقل من جميع الأحرف غير الفاصلة
بين حرفين فاصلين أو بداية السلسلة أو نهايتها. وهكذا ، أ
قد يكون الحقل هو السلسلة الفارغة. الرمز المميز هو السلسلة الفرعية القصوى غير الفارغة
تحتوي على حرف فاصل. الأحرف الفاصلة هي تلك الواردة في
سبس دعوى. لو سبس لم يتم توفير القيمة الافتراضية هي "\ t \ n". ال
تقوم الدالات بإرجاع عدد الحقول أو الرموز المميزة.

يتم تخزين الحقول والعلامات المميزة في مصفوفة الوسيطة. يجب أن تكون المصفوفة سلسلة-
قيمة ، وإذا تم تحديد نوع فهرس ، فيجب أن يتم ذلك مادبا. الإدخالات مفهرسة
من خلال أعداد صحيحة متتالية ، بدءًا من 0. أي قيم مخزنة بالفعل في المصفوفة ستفعل
إما أن تكون مكتوبة أو لا تزال موجودة بعد إرجاع الوظيفة.

I / O
طباعة( ): باطل
طباعة( على سبيل المثال, ) يطبع تمثيل سلسلة لكل وسيطة بدوره على
المعياري، متبوعًا بسطر جديد.

printf(معاهدة المواد الانشطارية : سلسلة, ): مادبا

printf(fd : مادبا, معاهدة المواد الانشطارية : سلسلة, ): مادبا
يطبع السلسلة الناتجة عن تنسيق قيم التعبيرات التالية
معاهدة المواد الانشطارية وفقا لل printf(3) شكل معاهدة المواد الانشطارية. إرجاع 0 على النجاح. افتراضيا ، هو
يطبع على المعياري. إذا كان العدد الصحيح الاختياري fd الناتج مكتوب على
دفق مفتوح مرتبط بـ fd.

scanf(معاهدة المواد الانشطارية : سلسلة, ): مادبا

scanf(fd : مادبا, معاهدة المواد الانشطارية : سلسلة, ): مادبا
بمسح القيم من تدفق الإدخال وفقًا لـ scanf(3) شكل معاهدة المواد الانشطارية.
يتم تخزين القيم في العناوين التالية معاهدة المواد الانشطارية، العناوين التي تحتوي على النموذج &v,
أين v هو بعض المتغيرات المعلنة من النوع الصحيح. بشكل افتراضي ، يقرأ من
ستدين. إذا كان العدد الصحيح الاختياري fd يتم إعطاء المدخلات من الدفق المفتوح
المرتبطة fd. إرجاع عدد العناصر التي تم مسحها ضوئيًا بنجاح.

مفتوح(s : سلسلة, t : سلسلة): مادبا
يفتح الملف s كتيار I / O. حجة السلسلة t يحدد كيف يكون الملف
افتتح. الوسيطات هي نفسها للدالة C. الدالة fopen(3). تقوم بإرجاع ملف
عدد صحيح يشير إلى التدفق ، أو -1 عند الخطأ.

كالعادة ، تكون التدفقات 0 و 1 و 2 مفتوحة بالفعل كـ ستدين, المعياريو ستدير,
على التوالى. منذ gvpr قد تستخدم ستدين لقراءة الرسوم البيانية الإدخال ، يجب على المستخدم
تجنب استخدام هذا الدفق.

قريب(fd : مادبا): مادبا
يغلق الدفق المفتوح الذي يشير إليه العدد الصحيح fd. لا يمكن أن تكون التدفقات 0 و 1 و 2
مغلق. إرجاع 0 على النجاح.

قراءةL(fd : مادبا): سلسلة
إرجاع السطر التالي المقروء من تدفق الإدخال fd. تقوم بإرجاع السلسلة الفارغة ""
في نهاية الملف. لاحظ أنه يتم ترك حرف السطر الجديد في السلسلة التي تم إرجاعها.

الرياضيات
إكسب(d : مضاعفة): مضاعفة
يعود البريد إلى dال القوة.

سجل(d : مضاعفة): مضاعفة
إرجاع اللوغاريثم الطبيعي لـ d.

الجذر التربيعي(d : مضاعفة): مضاعفة
تُرجع الجذر التربيعي للمضاعفة d.

الأسرى(d : مضاعفة, x : مضاعفة): مضاعفة
عائدات d رفعت إلى xال القوة.

كوس(d : مضاعفة): مضاعفة
إرجاع جيب التمام لـ d.

بدون(d : مضاعفة): مضاعفة
إرجاع جيب d.

أتان2(y : مضاعفة, x : مضاعفة): مضاعفة
إرجاع قوس ظل ص / س في النطاق -pi إلى pi.

دقيقة(y : مضاعفة, x : مضاعفة): مضاعفة
إرجاع الحد الأدنى من y و x.

MAX(y : مضاعفة, x : مضاعفة): مضاعفة
إرجاع الحد الأقصى y و x.

ترابطي المصفوفات
# آر : مادبا
تُرجع عدد العناصر في المصفوفة آر.

IDX in آر : مادبا
تُرجع 1 إذا تم تعيين قيمة للفهرس IDX في المصفوفة آر. تقوم بإرجاع 0
غير ذلك.

غير مصلد(v : مجموعة, IDX): مادبا
يزيل العنصر المفهرس بواسطة IDX. تقوم بإرجاع 1 إذا كان العنصر موجودًا ، 0 بخلاف ذلك.

غير مصلد(v : مجموعة): باطل
يعيد تهيئة المصفوفة.

منوع
خروج(v : مادبا): باطل
الأسباب gvpr للخروج مع رمز الخروج v.

نظام(كمد : سلسلة): مادبا
يوفر وظيفة C القياسية نظام(3). ينفذ كمد في غلاف المستخدم
البيئة ، وإرجاع حالة الخروج من قذيفة.

صف(): مضاعفة
تُرجع قيمة مزدوجة زائفة عشوائية بين 0 و 1.

سراند(): مادبا

سراند(v : مادبا): مادبا
يحدد بذرة لمولد الأرقام العشوائية. الحجة الاختيارية تعطي البذرة ؛
إذا تم حذفه ، فسيتم استخدام الوقت الحالي. تم إرجاع القيمة الأولية السابقة.
سراند قبل أي مكالمات إلى صف.

اللون(اللون : سلسلة, معاهدة المواد الانشطارية : سلسلة): سلسلة
يترجم لونًا من تنسيق إلى آخر. ال اللون يجب أن تكون الحجة ملونة
في أحد تمثيلات السلسلة المعروفة. ال معاهدة المواد الانشطارية يجب أن تكون القيمة واحدة من
"RGB" أو "RGBA" أو "HSV" أو "HSVA". تم إرجاع سلسلة فارغة عند الخطأ.

مدمج المتغيرات


gvpr يوفر بعض المتغيرات الخاصة المضمنة ، والتي يتم تعيين قيمها تلقائيًا بواسطة
gvpr حسب السياق. باستثناء ما هو مذكور ، لا يمكن للمستخدم تعديل قيمه.

$ : obj_t
يشير إلى الكائن الحالي (عقدة ، حافة ، رسم بياني) اعتمادًا على السياق. ليس
متوفر في ابدأ or END شروط.

$F : سلسلة
هو اسم ملف الإدخال الحالي.

$G : Graph_t
يشير إلى الرسم البياني الحالي قيد المعالجة. انها غير متوفرة في ابدأ or END
شروط.

NG : Graph_t
يشير إلى الرسم البياني التالي المراد معالجته. لو NG هو NULL ، الرسم البياني الحالي $G هل
الرسم البياني الأخير. لاحظ أنه إذا كان الإدخال يأتي من stdin ، فلا يمكن أن يكون الرسم البياني الأخير
مصممة حتى يتم إغلاق أنبوب الإدخال. انها غير متوفرة في ابدأ or END
البنود ، أو إذا كان -n يستخدم العلم.

$O : Graph_t
يدل على الرسم البياني الناتج. قبل اجتياز الرسم البياني ، يتم تهيئته إلى الهدف
رسم بياني. بعد الاجتياز وأي END_G الإجراءات ، إذا كانت تشير إلى رسم بياني غير فارغ ،
يتم طباعة هذا الرسم البياني على تدفق الإخراج. إنه صالح فقط في N, E و END_G
شروط. يمكن تعيين الرسم البياني الناتج من قبل المستخدم.

$T : Graph_t
يدل على الرسم البياني الهدف الحالي. إنه رسم فرعي لـ $G ومتاح فقط في
N, E و END_G شروط.

$ tgtname : سلسلة
يشير إلى اسم الرسم البياني الهدف. بشكل افتراضي ، يتم تعيينه على "gvpr_result". إذا
تستخدم عدة مرات أثناء تنفيذ gvpr، سيتم إلحاق الاسم بامتداد
عدد صحيح. يمكن تعيين هذا المتغير من قبل المستخدم.

تفروت $ : عقدة_t
يشير إلى عقدة البداية لعمق (موجه أو غير موجه) أول أو عرض
أول اجتياز للرسم البياني (راجع. نوع التلفزيون أقل). القيمة الافتراضية هي اغية For
كل رسم بياني إدخال. بعد الاجتياز عند الجذر المحدد ، إذا كانت قيمة تفروت $
تغير ، سيبدأ الاجتياز الجديد بالقيمة الجديدة لـ تفروت $. أيضا ، مجموعة
tvnext أدناه.

tvnext : عقدة_t
يشير إلى عقدة البداية التالية لعمق (موجه أو غير موجه) ‐ أولاً أو
اتساع ‐ أول اجتياز للرسم البياني (راجع. نوع التلفزيون أقل). إذا انتهى الاجتياز
و تفروت $ لم تتم إعادة تعيين ولكن tvnext تم تعيينه ولكن لم يتم استخدامه ، هذا
سيتم استخدام العقدة كخيار تالي لـ تفروت $. النظام الأساسي اغية For
كل رسم بياني إدخال.

$ tvedge : حافة_t
بالنسبة لعمليات اجتياز BFS و DFS ، يتم تعيين هذا على الحافة المستخدمة للوصول إلى التيار
عقدة أو حافة. في بداية الاجتياز ، أو لأنواع الاجتياز الأخرى ، فإن
القيمة اغية.

نوع التلفزيون : tvtype_t
يوضح كيف gvpr يتجاوز الرسم البياني. يمكن أن يأخذ قيمة واحدة فقط من القيم الثابتة
مع السابقة "TV_" الموصوفة أدناه. TV_flat هو الافتراضي.

في مكتبة الرسم البياني الأساسية cgraph(3) ، يتم إعطاء الحواف في الرسوم البيانية غير الموجهة
اتجاه تعسفي. يستخدم هذا في عمليات الاجتياز ، مثل TV_fwdتتطلب
حواف موجهة.

ARGC : مادبا
يشير إلى عدد الحجج المحددة بواسطة -a وسائط حجة سطر الأوامر.

ARGV : سلسلة مجموعة
يشير إلى مصفوفة الوسائط المحددة بواسطة -a وسائط حجة سطر الأوامر. ال
iيتم إعطاء الحجة من قبل ARGV [i].

مدمج الثوابت


هناك العديد من الثوابت الرمزية المحددة بواسطة gvpr.

اغية : obj_t
مرجع كائن فارغ ، يعادل 0.

TV_flat : tvtype_t
اجتياز بسيط ومسطح ، مع زيارة كائنات الرسم البياني بترتيب تعسفي على ما يبدو.

TV_ne : tvtype_t
اجتياز الذي يزور أولاً جميع العقد ، ثم كل الحواف.

TV_ar : tvtype_t
اجتياز يزور أولاً جميع الحواف ، ثم كل العقد.

TV_dfs : tvtype_t
TV_postdfs : tvtype_t
TV_prepostdfs : tvtype_t
اجتياز الرسم البياني باستخدام عمق - البحث الأول على الأساسي غير الموجه
رسم بياني. للقيام بعملية الاجتياز ، gvpr سيتحقق من قيمة تفروت $. إذا كان هذا يحتوي على
نفس القيمة التي كانت لها سابقًا (في البداية ، تتم تهيئة القيمة السابقة
إلى اغية).، gvpr سيبحث ببساطة عن بعض العقدة غير المقصودة ويتخطى اتصالها
عنصر. من ناحية أخرى ، إذا تفروت $ قد تغير ، سوف المكون المتصل
القيام بجولة ، على افتراض أنه لم يسبق زيارته أو ، إذا تفروت $ is اغيةأطلقت حملة
سيتوقف الاجتياز. لاحظ أن استخدام TV_dfs و تفروت $، فمن الممكن أن تخلق
حلقة لا نهائية.

بشكل افتراضي ، يتم الاجتياز بالترتيب المسبق. أي ، تمت زيارة العقدة من قبل
كل حوافها غير المرئية. ل TV_postdfs، كل حواف العقدة التي لم تتم رؤيتها هي
زار قبل العقدة. ل TV_prepostdfs، تتم زيارة العقدة مرتين ، قبل و
بعد كل حوافها غير المرئية.

TV_fwd : tvtype_t
TV_postfwd : tvtype_t
TV_prepostfwd : tvtype_t
اجتياز الرسم البياني باستخدام عمق - البحث الأول على الرسم البياني التالي فقط
أقواس إلى الأمام. اختيار الجذور للاجتياز هو نفسه كما هو موصوف لـ
TV_dfs فوق. الترتيب المختلف للزيارة المحدد بواسطة TV_fwd, TV_postfwd
و TV_prepostfwd هي نفس تلك المحددة بواسطة عمليات الاجتياز المماثلة
TV_dfs, TV_postdfs و TV_prepostdfs.

TV_rev : tvtype_t
TV_postrev : tvtype_t
TV_prepostrev : tvtype_t
اجتياز الرسم البياني باستخدام عمق - البحث الأول على الرسم البياني التالي فقط
أقواس عكسية. اختيار الجذور للاجتياز هو نفسه كما هو موصوف لـ
TV_dfs فوق. الترتيب المختلف للزيارة المحدد بواسطة TV_rev, TV_postrev
و TV_prepostrev هي نفس تلك المحددة بواسطة عمليات الاجتياز المماثلة
TV_dfs, TV_postdfs و TV_prepostdfs.

TV_bfs : tvtype_t
اجتياز الرسم البياني باستخدام عرض ‐ البحث الأول على الرسم البياني مع تجاهل الحافة
الاتجاهات. انظر البند على TV_dfs أعلاه لدور تفروت $.

أمثلة


gvpr -i 'N [color == "blue"]' file.gv

قم بإنشاء رسم بياني فرعي مستحث بالعقدة لجميع العقد باللون الأزرق.

gvpr -c 'N [color == "blue"] {color = "أحمر"}' file.gv

اجعل كل العقد الزرقاء حمراء.

ابدأ { مادبا n, e; مادبا tot_n = 0; مادبا حمل = 0; }
BEG_G {
n = n العقد ($ G) ؛
e = nEdges ($ G) ؛
printf ("٪د العقد %d حواف ٪ s \ n "، n, e, اسم $ G.name) ؛
tot_n += n;
حمل += e;
}
END { printf ("٪د العقد %d حواف إجمالي \ n "، tot_n ، حمل) }

نسخة البرنامج gc.

gvpr -c ""

أي ما يعادل ج: nop.

BEG_G { Graph_t g = رسم بياني ("دمج"، "س")؛ }
E {
عقدة_t h = استنساخ (g ، $. head) ؛
عقدة_t t = استنساخ (g ، $. tail) ؛
حافة_t e = حافة (ر ، ح ، "") ؛
ه. الوزن = ه. الوزن + 1;
}
END_G { $O = g; }

تنتج نسخة صارمة من الرسم البياني للإدخال ، حيث تكون سمة وزن الحافة
يشير إلى عدد الحواف من الرسم البياني للإدخال التي تمثلها الحافة.

ابدأ {عقدة_ت n; مادبا درجة []}
E {deg [head] ++ ؛ درجة [ذيل] ++ ؛ }
END_G {
For (درجة [ن]) {
printf ("درجة [٪ s] = ٪ d \ n "، n.name ، درجة [ن]) ؛
}
}

يحسب درجات العقد ذات الحواف.

ابدأ {
مادبا i, مسافة بادئة.
مادبا ينظر [سلسلة] ؛
باطل بريند (كثافة العمليات CNT) {
For (i = 0; i < cnt. أنا ++) printf (" ")؛
}
}
BEG_G {

نوع التلفزيون = TV_prepostfwd؛
تفروت $ = العقدة ($، ARGV [0])؛
}
N {
if (شوهد [$. name]) مسافة بادئة-- ؛
آخر {
prInd (مسافة بادئة) ؛
طباعة ($ .name) ؛
شوهد [$. name] = 1;
مسافة بادئة ++ ؛
}
}

يطبع اجتياز العمق أولاً للرسم البياني ، بدءًا من العقدة التي يكون اسمها
ARGV [0]، كقائمة ذات مسافة بادئة.

البيئة


GVPPRPATH
قائمة الدلائل المفصولة بنقطتين المراد البحث عنها للعثور على الملف المحدد بواسطة
الخيار -f. gvpr يحتوي على قائمة افتراضية مضمنة. إذا GVPPRPATH لم يتم تعريف
يتم استخدام القائمة الافتراضية. لو GVPPRPATH تبدأ بالنقطتين ، وتتكون القائمة من
إلحاق GVPPRPATH إلى القائمة الافتراضية. لو GVPPRPATH تنتهي بنقطتين ، والقائمة هي
تم تشكيلها عن طريق إلحاق القائمة الافتراضية بـ GVPPRPATH. غير ذلك، GVPPRPATH يستخدم في
القائمة.

في أنظمة Windows ، استبدل `` نقطتين '' بفاصلة منقوطة في الفقرة السابقة.

استخدم gvpr عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

أوامر لينكس

Ad