01/10/2018, 08:54
Sao không thể in các phần tử của list vậy mọi người
#include<stdio.h>
#include<conio.h>
#include<STDLIB.h>
struct node {
int data;
struct node *next;
};
void init(struct node *head,int *count )
{ head=NULL;
*count=0;
}
void nhap(struct node* head,int *count,int x)
{ struct node *cur=head,*p;
int i;
p=(struct node*) malloc (sizeof(struct node));
p->data=x;
if(*count==0)
{ head=p;
head->next=NULL;
}
else
{
for(i=1;i<(*count);i++)
{
cur=cur->next;
}
p->next=NULL;
cur->next=p;
}
*count++;
}
void lietke(struct node *head,int *count)
{ struct node *cur=head;
int i;
/* for(cur=head;cur!=NULL;cur=cur->next)
{ printf("%d ",cur->data);
cur=cur->next;
}*/
while(cur!=NULL)
{ printf(" %d ",cur->data);
cur=cur->next;
}
}
main()
{
struct node *h;
int co=0;
init(h,&co);
nhap(h,&co,3);
nhap(h,&co,4);
nhap(h,&co,5);
nhap(h,&co,6);
nhap(h,&co,7);
lietke(h,&co);
getch;
return 0;
}
Bài liên quan
Đây không phải là lần đầu tiên bạn đăng bài, nhưng bạn vẫn còn thiếu miêu tả, bạn phải chỉ rõ bạn gặp vấn đề gì với danh sách đó, cụ thể lỗi thế nào, bài toán ra sao chứ, bạn hỏi thế mọi người sẽ bỏ qua luôn đấy! Rút kinh nghiệm
cảm ơn anh đã nhăc nhở
Nếu đã hiểu rồi thì nên viết lại chứ nhỉ? Mình không phải nhắc nhở bạn, mình chỉ góp ý cho bạn thôi!
Theo mình sau lệnh for thì cur của bạn trỏ tới NULL
sao lại vậy ạ, cur lúc này đang ở phần tử cuối cùng, sau đó mình mới thêm p vào mà, nghĩa là p là phần tử cuối cùng đấy
cho mình hỏi khi nào thì dùng H.DATA khi nào thì dùng H->Data, mình không hiểu chỗ đó lắm, viết toàn lỗi
Vì khi
i = 1
, khối lệnh trong else được thực hiệni < *count
là phù hợp nhưng cur chỉ mới có 1 phần tử ơr khối lệnh if phía trước (tức làcur->next = NULL
) nêncur = cur->next; cur->next = p
lỗi.Mình ít khi thấy ai phải dùng thêm 1 biến “đếm” bên ngoài, vì bạn có thể dùng 1 tính chất của nó, đuôi của linked list luôn là null.
H.Data khi H không phải con trỏ, H->Data khi H là con trỏ.
H->Data == (*H).Data
(lưu ý dấu ngoặc).cảm ơn bạn để mình thử lại
H->data khi nó là con trỏ, H.data khi nó là đối tượng tham chiếu
H.data là khi H là một đối tượng, còn H->data khi H là con trỏ đến đối tượng (viết gọn của (*H).data).