良い一日。cでリンクリストを使用して次のデータと前のデータを作成する方法を知っている人はいますか? リンクされたリストで前のデータを取得した後、NULL 値を取得しています。右のキーに移動すると (取得したいインデックスを渡す)、次のデータの取得に問題はありませんが、キーを左に移動すると、再度インデックスを渡して必要なデータを取得しても NULL 値です。これが私のサンプルの add と get リンク リストのコードです。
typedef struct samp{
int idx;
char *name;
struct samp *next;
}sampLink;
sampLink *head=NULL,tail=NULL,test;
int addList(int idx,char *name){
sampLink *tryi=NULL;
tryi=(sampLink*)calloc(1,sizeof(sampLink));
tryi->idx=idx;
tryi->name=strdup(name);
tryi->next=NULL;
if(head==NULL){
head=tryi;
tail=tryi;
}else{
tail->next=tryi;
tail=tail->next;
}
return 0;
}
sampLink *getList(int idx){
do{
if(idx==head->idx){
return head;
}
head=head->next;
}while(head!=NULL);
return head;
}
moveRightの場合
void moveRight(){
int i=0;
test=getList(i);
i++;
}
左だけマイナス記号。誰かが私を助けてくれることを願っています.Thanks