function InOrder = InOrderAlg(ChildrenList)
% InOrder = InOrderAlg(ChildrenList)
InOrder = InOrderRecursiveAlg(ChildrenList,[]);



function InOrder = InOrderRecursiveAlg(ChildrenList,InOrder)
%InOrder = InOrderRecursiveAlg(ChildrenList,InOrder)
%Input: ChildrenList: m + 1 column matrix (of integers) for an m-ary tree
%Output: InOrder: a vector containing the inorder list of the vertices
if nnz(ChildrenList)== 1 %tree consists only of root
    InOrder = [InOrder ChildrenList(1,1)];
end
if nnz(ChildrenList)> 1 %root has children
     ChildChildrenLists = ChildTrees(ChildrenList);
     InOrder = InOrderRecursiveAlg(ChildChildrenLists(:,:,1),InOrder);
     InOrder = [InOrder ChildrenList(1,1)];
     [r c s] = size(ChildChildrenLists); % s = number of children trees
     for i = 2:s
         InOrder = InOrderRecursiveAlg(ChildChildrenLists(:,:,i),InOrder);
     end
end

    




        


