2
こんにちは私はMatlabでリンクリストを実装しようとしています。クラスを再帰的に呼び出す(リンクリストを実装する)
私がやって期待しています実装は、(これはCと同等である)である:
class Node{
public Node* child;
}
私は周りを見回しているが、かなり近いものを得るように見えることはありません。
こんにちは私はMatlabでリンクリストを実装しようとしています。クラスを再帰的に呼び出す(リンクリストを実装する)
私がやって期待しています実装は、(これはCと同等である)である:
class Node{
public Node* child;
}
私は周りを見回しているが、かなり近いものを得るように見えることはありません。
私はあなたがリンクリストを実装したいと思います:
classdef Node < handle
properties
Next = Node.empty(0); %Better than [] because it has same type as Node.
Data;
end
methods
function this = Node(data)
if ~exist('data','var')
data = [];
end
this.Data = data;
end
end
end
は創造:
n1 = Node('Foo'); %Create one node
n2 = Node('Bar'); %Create another one
n1.Next = n2; %Link between them
反復:
n = n1;
while ~isempty(n)
disp(n.Data); %Change this line as you wish
n = n.Next;
end
ありがとう!それは最高です。 – shunyo
あなたが質問を明確にしたい場合には参考になります少し。 (1)あなたは再帰的メソッドを実装しようとしていますが、あなたが何をしたいのか何をしようとしているのかについて何も言わないのです。 (2)あなたは「これはCの同等物です」と言っていますが、C以外のものに従ってください(そして、それには再帰的な方法も含まれていないようです) –
あなたが実際にやろうとしていることそのクラスのプロパティの値が同じクラスの別のオブジェクトへの参照であるクラスを作成するだけです...あなたは特別なことを何もする必要はありません。 MATLABクラスのプロパティにはタイプが付いていないので、 'x.child = x'などと言っても何も止めません。しかし、おそらく 'class myclass
私の意見ではあまりにも漠然としていることを申し訳ありません。私が見ていたのはOOPによるリンクリスト実装でした。 – shunyo