VD: Them 3 vao sau tat ca 4:
input: 1 4 66 4 7 9 4 22
output: 1 4 3 66 4 3 7 9 4 3 22
Mình viết được hàm thêm rồi nhưng output bị sai:
1 3 3 3 4 66 4 7 9 4 22
Hàm mình code:
Mình nên sửa ntn ạ? Cám ơn mng
VD: Them 3 vao sau tat ca 4:
input: 1 4 66 4 7 9 4 22
output: 1 4 3 66 4 3 7 9 4 3 22
Mình viết được hàm thêm rồi nhưng output bị sai:
1 3 3 3 4 66 4 7 9 4 22
Hàm mình code:
bạn nên giải thích code của bạn trước, cho mọi người hiểu
tự nhiên ai biết pHead là cái gì, kiểu DList là kiểu gì, có prop gì trong đó
Hàm trên: x là giá trị có sẵn trong list, y là giá trị nhập vào để thêm sau tất cả các node có giá trị x.
Mình khai báo thế này:
struct DNode
{
int info; //gia trị node
DNode *pNext, *pPrev; //node sau,node trước
};
struct DList
{
DNode *pHead, *pTail; // node đầu node cuối
};
Các hàm cơ bản của Danh sách liên kết kép mình đã viết và chạy đúng, còn lỗi chỗ hàm addAfterMulti vì nó chỉ chạy và thêm vào sau node->info=x đầu tiên
Trong hàm AddAfterMulti, đến đoạn kiểm tra giá trị của node K bằng x, bạn đang đứng ở node K có giá trị x rồi, tại sao phải đưa vào hàm addAfter để chạy lại từ node Head tốn công vậy?
a -> b -> c -> k (== x) -> d -> e
Giờ bạn chỉ cần add 1 node mới sau K và nhảy tới D là xong mà.
(Less code, less bug)
Mình hiểu rồi ạ, cám ơn bạn nhé!