C Массив / Стек / Очередь Массивов? - PullRequest
0 голосов
/ 28 февраля 2020

Я довольно плохо знаком с языком C, и у меня есть задача создать что-то, что содержит массив элементов. Мне нужно иметь Игры, и в этом массиве игр / стеке / очереди у меня должны быть массивы ходов для игрока (значения типа int). Какой может быть лучший алгоритм для реализации этого? И самый простой способ восстановить их после? Стек будет трудным, когда я попытаюсь получить их столько, сколько я знаю. Также, если вы могли бы помочь мне написать его для моего массива, так как я все еще новичок и не знаю, как создать очередь или массив других массивов.

Вот мой массив до сих пор:

int array[MAX]; 
insert(array, 1, 12);
insert(array, 2, 13);
insert(array, 3, 14);

// Methods
// Init the array
void init(int *array)
{
    int idx;
    for (idx =0; idx < MAX ; idx++)
    {
        array [idx] = 0;
    }
}

// Insert into the array
void insert ( int *array , int pos , int num)
{
    int idx;

    for ( idx = MAX -1; idx >= pos ; idx --)
    {
        array [idx] = array [idx -1];
    }
    array [idx] = num;
}

1 Ответ

0 голосов
/ 28 февраля 2020

2-мерный массив в c, например таблица из 10 столбцов, имеет вид: int a[][10]

, и тогда каждая строка будет эквивалентна:

typedef int row[10]

и затем вы используете a[x][y] для извлечения отдельных ячеек.

Или при желании вы можете создать массив указателей на int, например:

int *array[NUM_ROWS]

И тогда каждая строка будет эквивалентна:

typedef int *row

, а затем вам потребуется mallo c () для каждой строки, необходимое количество столбцов.

...