Подтвердить что ты не робот

Matlab - Структура данных стека

Могу ли я иметь структуру данных стека в matlab?

Например, стек целых чисел, где я могу вставлять в него элементы типа stack.push(i), извлекать элементы из него, как i = stack.pop(), и проверить, пуст ли он stack.isempty().

4b9b3361

Ответ 1

Я не думаю, что у MATLAB есть один даже в более новых версиях. Но вы можете использовать Java, это "гражданин первого класса" в MATLAB, он отлично работал бы с целыми числами, сколько вам нужно. См. Также queue и linked-list связанные вопросы.

Просто напишите в MATLAB stack=java.util.Stack(), а затем вызовите методы на нем, как в вашем вопросе stack.push(i), ecc.

Ответ 2

Вы можете сворачивать свои собственные, или вы можете использовать чужие, например this.

Очень простой домашний стеф должен быть массивом со счетчиком, отсчет которого указывает на самый верхний элемент.

Ответ 3

Я использовал Java в MATLAB и, честно говоря, он очень медленный. Гораздо лучше сделать то, что сказал @skurmedel, вот так:

Ptr = 1;
Stack(ptr,:) = [x,y];
Ptr = ptr + 1;

И для имитации pop:

A = stack(ptr,1);
B = stack(ptr,2);
Ptr = ptr - 1;