Я работаю над реализацией структур данных очереди с использованием ячеек массивов в Matlab. Я пытаюсь написать функции для продвижения очереди на один, а также поиск очереди для определенного элемента. На данный момент функция выглядит так (типы автомобилей - это пример данных).Matlab - Структура данных очереди
function q = createQueue()
q={};
q = enqueue(q,'Hilux');
q = enqueue(q,'E-Type');
q = enqueue(q,'Beetle');
q = enqueue(q,'Enzo');
q = enqueue(q,'Boxter');
q = dequeue(q)
q = searchQueue(q,'Boxter')
end
% Adds an item to the end of the queue. Returns the new queue.
function q = enqueue(q,item)
q{end+1} = item;
end
function [q item] = dequeue(q)
q{1} = {};
q{1} = q{2};
q{2} = q{3};
q{3} = q{4};
q{4} = q{5};
q{5} = {};
end
function answer = searchQueue(q, item)
for i = 1:length(q)
if q{i} == item
answer = fprintf('FOUND AT INDEX %d',i);
break
else
disp('-1')
end
end
end
В настоящее время функция dequeue оставляет пустую ячейку, а не полностью удаляет ее. Можно ли этого избежать? Функция searchQueue также возвращает ошибку, и я теряюсь относительно причины. Спасибо