תרגול מס׳ 4
שיעור 12 מתוך 12 בקורס תור – סדרת מבני הנתונים #2 של Coddy.
האתגרים הבאים נועדו להשתמש בתור. מבנה הנתונים Queue כבר מסופק לך — השתמש בו!
אתגר
קלכתבו פונקציה בשם hotPotato שמקבלת רשימת שמות ומספר מסירות, ומדמה את משחק תפוח האדמה הלוהט: העבירו את תפוח האדמה 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;
}
כל השיעורים ביחידה תור – סדרת מבני הנתונים #2
תרגלו בעצמכם: קומפיילר C אונליין