リンクされたリストの最後から i 番目の位置にあるデータを検索したい。私は再帰を使用してこのコードを書きました:
ノード構造:
struct Node
{
int data;
struct Node * next;
}
コード :
int i = 10;
int find ( Node * ptr, unsigned int count )
{
if( nullptr == ptr )
{
++ count;
return count;
}
count = find ( ptr->next , count );
if( i == count )
{
std::cout << "Successful here: " << ptr->data << std::endl;
exit ( -1 ) ;
}
else
{
++ count;
return count ;
}
}
再帰関係を使用して時間の複雑さを計算することについての基本的な考えがあります。しかし、私は関係自体を書くことができません。どなたか指示をいただけませんか?
私が理解していることから、問題を毎回 1 つ少ない要素に分割しています (次のノードに移動することによって)。
だから、それは次のようなものでなければなりません
T(n) = T(n-1) + 定数
このような状況では、Tree メソッドまたは他のメソッドの方が優れているでしょうか?