Giải đáp thắc mắc cơ bản về danh sách liên kết đơn

Chả là mình vừa bắt đầu học về danh sách liên kết đơn nhưng thầy lại cho vài bìa tập “khá căng”, mình có lên mạng xem về cách code nhưng hầu như những vấn đề cơ bản mà mình không hiểu thì lại không có. Đây là đề bài:
Viết chương trình nhập các số nguyên n, a, b (a>0, b>0, n<b-a) và thực hiện
các công việc sau:
a) Tạo danh sách liên kết L1 gồm n số nguyên ngẫu nhiên trong khoảng [a; b].
b) Tạo danh sách liên kết L2 gồm n số nguyên ngẫu nhiên khác nhau trong
khoảng [a; b].
c) Nối L2 vào L1 để tạo danh sách L.
d) Kiểm tra tính đơn điệu của danh sách L.
e) Kiểm tra tính đối xứng của danh sách L.
f) Nhập số nguyên x, sau đó tìm phần tử đầu tiên trong danh sách L có giá trị
bằng x. Nếu tìm thấy, chèn phần tử (x-1) vào trước phần tử x và phần tử (x+1)
vào sau phần tử x. Nếu không tìm thấy, chèn phần tử (x-1) vào đầu danh sách
và phần tử (x+1) vào cuối danh sách.
g) Nhập một số nguyên x, sau đó xác định xem có bao nhiêu phần tử trong danh
sách L có giá trị bằng x.
h) Nhập một số nguyên x, sau đó loại tất cả phần tử có giá trị bằng x ra khỏi L.
Mình không biết là khi tạo 2 danh sách L1,L2 cùng lúc thì có phải tạo 2 struct hay khai báo 2 danh sách hay không, và tạo danh sách gồm các số ngẫu nhiên khác nhau thì phải làm thế nào, hay cách nối 2 DS lại. Những bài này làm kiểu danh sách đặc thì mình làm khá dễ dàng nhưng bên DS liên kết đơn lại có cách code khác nên mình khá bối rồi. Mong mọi người giúp.

  1. Tạo danh sách L1, L2 thì chỉ cần 1 struct danh sách liên kết thôi.
  2. Sinh số ngẫu nhiên thì dùng hàm rand(), dùng vòng lặp thôi.
  3. Nối 2 danh sách thì bạn để tail của cái L1 trỏ tới head của cái L2 thôi
2 Likes

bạn code mình xem mẫu chỗ tạo 2 DS được không, mình học onl mà thầy chỉ lướt qua các đoạn code khác nhau nên mình không biết ráp lại kiểu sao cả, còn chỗ phần tử ngẫu nhiên khác nhau nữa nên bên DS đặc mình dùng srand có map để đánh dấu cái nào có rồi để mà thêm cái khác

bạn học ngôn ngữ gì nữa chứ :#

2 Likes

mình đang học ngôn ngữ c/c++, xem mẫu trên internet toàn dùng 1 DS nên mình ko biết dùng 2 DS cùng lúc kiểu sao :///

Thực ra chỉ có 1 kiểu DS, còn hai DS là hai biến :slight_smile:
Mấy cái yêu cầu cứ chuyển thành phương thức và quẩy lên.

3 Likes

mới học còn chưa hiểu, code mạng thì cứ rối lên mà thầy lại cho núi bài tập :(((

//định nghĩa danh sách liên kết
struct LinkedList{
    int head;
    LinkedList *tail;
 };
//tạo 2 dslk 
LinkedList* L1 = new LinkedList();
LinkedList* L2 = new LinkedList();
3 Likes

thank bạn, trên gg làm gì có cái này :))

k chắc code đúng :smiley: lâu lắm không động vào c++

cái mình mới học là

typedef struct pt{
   int data;
   struct pt *next;
}phantu;

không biết có ảnh hưởng gì đến chỗ tạo 2 DS không bạn?

Cái này chỉ là node thôi :slight_smile:

3 Likes

mình xem gg toàn hàm dùng cho node, thấy khác với cái thầy dạy nên không biết code theo bên nào, mạng thì đủ hơn mà khá rắc rối, còn thầy đơn giản mà thiếu nhiều quá

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?