السلطان
  1. الرئيسية
  2. الأمثلة
  3. المجموعات

طابور ذو نهايتين

إضافة وأخذ من الطرفين.

collections/deque.sn
// طابور ذو نهايتين: إضافة وأخذ من الطرفين.
استورد std.io.println;
استورد std.text.number;
استورد std.collections.deque;

عرف الرئيسية(): عدد {
    دع السطر: متغير طابور_ذو_نهايتين<عدد> = أنشئ_طابور_ذو_نهايتين();
    أضف_خلف_طابور_ذو_نهايتين(&متغير السطر, 2);
    أضف_خلف_طابور_ذو_نهايتين(&متغير السطر, 3);
    أضف_أمام_طابور_ذو_نهايتين(&متغير السطر, 1);
    أضف_خلف_طابور_ذو_نهايتين(&متغير السطر, 4);
    اطبع_سطر(طبيعي_إلى_نص(طول_طابور_ذو_نهايتين(&السطر)));
    طابق خذ_من_أمام_طابور_ذو_نهايتين(&متغير السطر) مع
    | اختياري.موجود(القيمة) -> { اطبع_سطر(عدد_إلى_نص(القيمة)); }
    | اختياري.لا_شيء -> { };
    طابق خذ_من_خلف_طابور_ذو_نهايتين(&متغير السطر) مع
    | اختياري.موجود(القيمة) -> { اطبع_سطر(عدد_إلى_نص(القيمة)); }
    | اختياري.لا_شيء -> { };
    اطبع_سطر(طبيعي_إلى_نص(طول_طابور_ذو_نهايتين(&السطر)));
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/collections/deque.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/collections/deque.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة