c 中的 SLL 在列表中的屏幕元素上打印一个额外的随机数
SLL in c prints one extra random on the screen elements in list
我 运行 我的代码,它会在我们输入元素编号的屏幕上额外打印一个随机数,我想知道我在创建列表时哪里出错了?
struct emp {
int x;
struct emp* next;
};
typedef struct emp* node;
int main(){
int elemanSayisi;
struct emp *root,*iter;
root=(struct node *)malloc(sizeof(struct emp));
iter=root;
printf("enter number of elements: ");
scanf("%d",&elemanSayisi);
for(int i=0;i<elemanSayisi;i++){
iter->next=(struct node *)malloc(sizeof(struct emp));
printf("\n%d. enter the element: ",i+1);
scanf("%d",&iter->x);
iter=iter->next;
iter->next=NULL;
}
int b=1;
iter=root;
while(iter!=NULL){
printf("\n%d. element: %d",b,iter->x);
iter=iter->next;
b++;
}
}
使用指向 emp 的指针可以简化对第一个节点的处理。之后我还添加了代码来释放列表:
struct emp {
int x;
struct emp* next;
};
int main(){
int elemanSayisi;
struct emp *root = NULL;
struct emp *iter;
struct emp **ppemp = &root;
printf("enter number of elements: ");
scanf("%d",&elemanSayisi);
for(int i=0;i<elemanSayisi;i++){
iter = *ppemp = (struct emp *)malloc(sizeof(struct emp));
iter->next=NULL;
printf("\n%d. enter the element: ",i+1);
scanf("%d",&iter->x);
ppemp = &(iter->next);
}
int b=1;
iter=root;
while(iter != NULL){
printf("\n%d. element: %d",b,iter->x);
iter=iter->next;
b++;
}
iter = root; /* free nodes */
while (iter != NULL) {
root = iter->next;
free(iter);
iter = root;
}
return 0;
}
我 运行 我的代码,它会在我们输入元素编号的屏幕上额外打印一个随机数,我想知道我在创建列表时哪里出错了?
struct emp {
int x;
struct emp* next;
};
typedef struct emp* node;
int main(){
int elemanSayisi;
struct emp *root,*iter;
root=(struct node *)malloc(sizeof(struct emp));
iter=root;
printf("enter number of elements: ");
scanf("%d",&elemanSayisi);
for(int i=0;i<elemanSayisi;i++){
iter->next=(struct node *)malloc(sizeof(struct emp));
printf("\n%d. enter the element: ",i+1);
scanf("%d",&iter->x);
iter=iter->next;
iter->next=NULL;
}
int b=1;
iter=root;
while(iter!=NULL){
printf("\n%d. element: %d",b,iter->x);
iter=iter->next;
b++;
}
}
使用指向 emp 的指针可以简化对第一个节点的处理。之后我还添加了代码来释放列表:
struct emp {
int x;
struct emp* next;
};
int main(){
int elemanSayisi;
struct emp *root = NULL;
struct emp *iter;
struct emp **ppemp = &root;
printf("enter number of elements: ");
scanf("%d",&elemanSayisi);
for(int i=0;i<elemanSayisi;i++){
iter = *ppemp = (struct emp *)malloc(sizeof(struct emp));
iter->next=NULL;
printf("\n%d. enter the element: ",i+1);
scanf("%d",&iter->x);
ppemp = &(iter->next);
}
int b=1;
iter=root;
while(iter != NULL){
printf("\n%d. element: %d",b,iter->x);
iter=iter->next;
b++;
}
iter = root; /* free nodes */
while (iter != NULL) {
root = iter->next;
free(iter);
iter = root;
}
return 0;
}