Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Practice #4

الدرس 12 من 12 في دورة Queue - سلسلة هياكل البيانات #2 على Coddy.

تم تصميم التحديات التالية لاستخدام طابور (queue). إنّ بنية البيانات Queue متوفرة لك بالفعل — استخدمها!

challenge icon

التحدي

سهل

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

استخدم الـ Queue المقدم لحل هذه المشكلة!

جرّب بنفسك

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"

int main() {
    char line[4096];
    char** names = (char**)malloc(sizeof(char*) * 1000);
    int n = 0;
    if (fgets(line, sizeof(line), stdin)) {
        char* tok = strtok(line, " \t\r\n");
        while (tok) { names[n++] = strdup(tok); tok = strtok(NULL, " \t\r\n"); }
    }
    int tosses = 0;
    scanf("%d", &tosses);
    printf("%s\n", hotPotato(names, n, tosses));
    return 0;
}

جميع دروس Queue - سلسلة هياكل البيانات #2