Cの文字列に対して線形検索機能を実装しようとしていますが、現在は機能していません。ここに私のコードは次のとおりです。4合計がある(LinkedListによる線形検索
printf("\nItem: Tim\nIndex: %d", listSearch(list_1, "Tim"));
「ティムインデックス3であるが、出力が一貫インデックス4で彼を置く:
// Linear search for name matching input string
int listSearch(struct LinkedList* linkedList, char name)
{
struct StudentRecord* temp = linkedList->head; // Go to first item in linked list
int count = 0; // Count variable to give index of search item
while((temp != NULL) && (name != temp->name))
{
temp = temp->next;
count++;
}
return count;
}
そして、ここではlistSearchに関数呼び出しがありますリスト内のアイテム、したがってインデックス4は存在しません) - 検索するアイテムについても同様です。これは私に、(name!= temp-> name)の状態が失敗していると信じるようになりますが、私の人生の理由から見ることはできません...誰かが私になぜそれがうまくいかないのかのヒントを与えることができますか?
それはCでなら、++あなたの質問Cをしてくださいタグ付けしないでください。 – Rakete1111
右、そのことを念頭に置くでしょう。私の問題が何であるかについての洞察はありますか? –
「temp」に割り当てたときに、最初のエントリを自動的にスキップします。 ( 'temp = linkedList-> head;') – Jamie