Bạn giải thích đoạn này cho mình với?Code:q = first; while (q -> next != NULL) q = q -> next;
Khai báo struct của chương trình nek`.
Hàm này có chức năng chèn 1 số vào cuối danh sách liên kết đơn.Code:struct nut { int info; struct nut *next; }; struct nut *first; struct nut *last; struct nut *ptr; struct nut *q; int so;
Vấn đề : Ở đây làCode:bosungcuoi() { int so; q = first; while (q -> next != NULL) q = q -> next; do { printf("\n Nhap so nguyen ");scanf("%d",&so); if (so != 0) { /* Cap phat bo nho cho bien dong cua phan tu moi */ ptr = calloc(1,sizeof(struct nut)); /* Doc gia tri cho truong infor */ ptr -> info = so; while (getchar() != '\n'); /* Quet het bo nho dem ban phim*/ /* Moc nut vua nhap thong tin vao danh sach */ if (first==NULL) first = ptr; else q -> next = ptr; q = ptr; } } while (so != 0); getch(); return; }
ptr = calloc(1,sizeof(struct nut));
/* Doc gia tri cho truong infor */
ptr -> info = so;có liên quan gì đâu khi giữa 2 con trỏ q và ptr nhưng sao khi in ra màn hình thỳ lại được, em không hiểu ở chỗ đó ai prao có thể giải thích giùm em!!! Thanks allif (first==NULL) first = ptr;
else q -> next = ptr;
Bạn giải thích đoạn này cho mình với?Code:q = first; while (q -> next != NULL) q = q -> next;
Mua hosting tăng Website hoặc Tên miền - Tuyển cộng tác viên: % hoa hồng từ 5%-10%
-------------------------------------------------------
Hotline: 0944397399 (Mr.Sơn) - Website: thienma.net
Yahoo: thienma_sale - thienma.sale
đầu tiên hàm calloc là
void *x = (___*)calloc(so luong, size cua 1 ptu) ;
nếu first == NULL tức là dslk rỗng nên addhead = addtail thôi, nên gán first = ptr.có liên quan gì đâu khi giữa 2 con trỏ q và ptr nhưng sao khi in ra màn hình thỳ lại được, em không hiểu ở chỗ đó ai prao có thể giải thích giùm em!!! Thanks all![]()
còn nếu !=NULL thì nút q bây giờ giống như biến chạy i và nó hiện đang nằm ở cuối ds nên q->qNext = ptử mún gán vào ds.
có gì sai thì góp ý
Hàm mình trả về giá trị là return; tức không có giá trị trả về.
Chương trình con để in ra màn hình đây mà: thấy gì ko ở trong này đâu có đụng đến q đâuCode:xem() { printf("Xem thong tion cac nut trong danh sach "); ptr = first; while (ptr != NULL) { printf("%d ",ptr -> info); ptr = ptr -> next; } getch(); return; }
pó tai thật.cái code ở trên thì chẳng thấy hàm xem() ở đâu hết giờ lại lòi ra.title của topic là chèn nút vào cuối ds mà.
code ở trên là chèn nút đem xuống dưới cái thành xem ds.
Dù sao cũng thanks bạn... hôm nay mình hỏi thầy rùi cũng hiểu chút ít.