再会。任何人都知道如何在 c 中使用链表来处理下一个和上一个数据?在我获得链表中的前一个数据后,我得到 NULL 值,如果我移动到右键(传递我想要获取的索引),则获取下一个数据没有任何问题,但是如果我将键移到左侧,我得到了NULL 值,即使我再次传递索引并获取我需要的数据。这是我的示例添加和获取链表代码。
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;
}
右移
void moveRight(){
int i=0;
test=getList(i);
i++;
}
左边只是减号。希望有人能帮助我。谢谢