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
현재, 디큐 기능은 오히려 완전히 세포를 제거하는 것보다, 빈 셀을 떠난다. 이것이 피할 수 있습니까? 또한 searchQueue 함수는 오류를 반환하고 나는 그 이유를 놓치게됩니다. 감사합니다