2017-06-22 3 views
0

プロジェクトのリンクリストを作成しています。私はすでにリストに追加をコード化しましたリンクリストのデータを更新する

t_team *add_team(t_team *teams, char *team_name, int id) 
{ 
    t_team *tmp; 

    if ((tmp = malloc(sizeof(t_team))) == NULL) 
    return (NULL); 

    if ((tmp->name = malloc(sizeof(char) * strlen(team_name) + 1)) == NULL) 
    return (NULL); 

    strcpy(tmp->name, team_name); 
    tmp->id = id; 
    tmp->next = teams; 
    return (tmp); 
} 

しかし、私はリストの特定のノードのIDを更新する必要があります、どうすればいいですか? おかげ

+3

[mcve]を含む投稿 –

+0

更新するノードを検索します。それを更新してください。それほど難しくありません。あなたはまだ検索機能を書いていないのですが、問題は何ですか? –

答えて

2

ステップ1:更新したいリストを表示して下さい

t_team *find_by_name(t_team *head, char *team_name) 
{ 
    t_team * tmp = head; 
    while(tmp != NULL){ 
    if(strcmp(tmp->name, team_name) != 0) 
     head = tmp->next; //Advance the pointer to next element 
    else 
     return tmp; 
    } 
    return NULL; 
} 

ステップ2:あなたの主な機能から提出された
コールにこのユーティリティを更新します -

t_team *tmp = find_by_name(head, "Some_Name"); 
    if(tmp == NULL) 
    //element not found 
    else 
    tmp->id = new_id; //Update ID 

更新: - find_by_nameヘッドを変更する代わりにtmpを使用するように更新しました。

+0

上を見る....... –

+0

あなたは頭を変えています! Thats are correct!.... –

+0

私はtmpを使って更新しました - スニペットはOPに何をする必要があるのか​​を考えさせることでした – Zakir

関連する問題