Practice #2
Leçon 10 sur 13 du cours La pile - Série sur les structures de données n°1 de Coddy.
Les prochains défis sont conçus pour utiliser une pile .
La structure de données Stack est déjà fournie pour vous — utilisez-la !
Défi
FacileÉcrivez une fonction nse qui reçoit un tableau d'entiers et renvoie un tableau contenant le plus proche élément plus petit (nearest smaller element) de chaque élément (à sa gauche). S'il n'y a pas d'élément plus petit à la gauche d'un élément, renvoyez -1.
Utilisez la pile Stack fournie pour résoudre ce problème !
Exemple :
Entrée : [4, 5, 2, 10, 8]
Sortie attendue : [-1, 4, -1, 2, 2]
Essayez vous-même
#include <stdio.h>
#include <stdlib.h>
#include "nse.h"
int main() {
int* a = (int*)malloc(sizeof(int) * 1000);
int aSize = 0;
int x;
while (scanf("%d", &x) == 1) {
a[aSize++] = x;
}
int returnSize;
int* result = nse(a, aSize, &returnSize);
for (int i = 0; i < returnSize; i++) {
printf("%d\n", result[i]);
}
free(a);
return 0;
}