Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Hướng dẫn cơ bản nhất về danh sách liên kết

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    21

    Mặc định Hướng dẫn cơ bản nhất về danh sách liên kết

    Em mới học danh sách liên kết đơn xong nhưng kô hiểu jì cả tìm hết tất cả các tài liệu đọc vô rồi nhức đầu thêm. Ai có tài liệu thật sự căn bản về dslk đơn hoặc hướng dẫn những cái trọng tâm nhất về nó thì chỉ em nha. Mới năm nhất gà mờ xin được chỉ giáo.
    VD như em chưa hiểu khúc này nè
    sao ta lại khai báo b=b->next
    và khi nhập 1 danh sách thì ta cần phải giới hạn việc trỏ đến như thế nào.
    Và cách nhập thông tin vào bằng dslkd rồi xuất thông tin ở vị trí ngẫu nhiên ra sao. Em chỉ quen dùng mảng àh nên trong dslk dùng con trỏ nên khó hiểu.Cảm ơn mọi người trước nha.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    C++ Code:
    1.  b = b->next

    [data][next]->[data][next]->[data][next]->....
    - Danh sách có dữ liệu gọi là data.
    - Có 1 self-referetial pointer chính là next.
    -> b = b->next chính là nhảy sang con trỏ của thằng kế bên.
    Tập làm vài bài ví dụ trong sách trước + đọc kĩ lại lý thuyết, đọc xong đi rùi tui sẽ cho ví dụ .

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    21

    Vậy vd muốn xuất giá tri. ở vi trí thứ 2 thì ta phải làm sao.
    VD trong mảng thì cout<<a[1];
    còn trong danh sách liên kết thì sao chỉ em đi.

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Vậy cậu phải có 1 hàm đại khái set_position(int vịtrí), rùi move con trỏ tới vị trí đó. Rùi tại vị trí đó in ra ví dụ :
    C++ Code:
    1. b = b->next;
    2. cout << b->data;
    Link list nó không như mãng vì nó dễ xóa dẽ chèn nhưng bù lại muốn truy xuất trực tiếp đến 1 phần tử thì bắt buộc phải move từ đầu đến vị trí đó. Single link list thì tạo ra 1 thằng giữ cái head này, rùi move tới hoặc lui. Tui đang ở trường lại sắp có lớp rùi. Về đến nhà tui sẽ cho 1 ví dụ đơn giản !

    Example.
    C++ Code:
    1. #include <iostream>
    2.  
    3. struct IntNode{
    4.   int data;
    5.   IntNode* next;
    6.   IntNode():data(0), next(0){
    7.   }
    8.   IntNode(int data, IntNode* next):data(data), next(next){
    9.   }
    10. };
    11.  
    12. class SGList{
    13. public :
    14.   SGList();
    15.   ~SGList();
    16.   int size() const;
    17.   bool empty() const;
    18.   void print(std::ostream& oss) const;
    19.   void insert(const int& item);
    20. protected :
    21.   int count;
    22.   IntNode* head;
    23.   IntNode* set_position(int pos) const;
    24. };
    25.  
    26. SGList::SGList():count(0), head(NULL){
    27. }
    28.  
    29. SGList::~SGList(){
    30.   IntNode* old_head = head;
    31.   head = old_head->next;
    32.   delete old_head;
    33. }
    34.  
    35. bool SGList::empty() const{
    36.   return count == 0;
    37. }
    38.  
    39. int SGList::size() const{
    40.   return count;
    41. }
    42.  
    43. void SGList::print(std::ostream& oss) const{
    44.   IntNode* temp = head;
    45.   while(temp->next != NULL){
    46.     oss << temp->data << " ";
    47.     temp = temp->next;
    48.   }
    49.   oss << '\n';
    50. }
    51.  
    52.  IntNode* SGList::set_position(int pos) const{
    53.   IntNode* q = head;
    54.   for(int x = 0; x < pos; ++x){
    55.     q = q->next;
    56.   }
    57.   return q;
    58. }
    59.  
    60. void SGList::insert(const int& item){
    61.   IntNode* new_head = new IntNode(item, head);
    62.   head = new_head;
    63. }
    64.  
    65. int main(){
    66.   SGList aList;
    67.   for(int x = 0; x < 5; ++x){
    68.     aList.insert(x);
    69.   }
    70.   aList.print(std::cout);
    71. }
    If you find sth hard to understand, let me know. I will explain as much as I can

  5. #5
    Ngày gia nhập
    03 2008
    Bài viết
    21

    Hic dùng c để giải thix đc ko. Hình như bạn đang dùng c++ nên mình kô hiểu jì hết

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Hướng dẫn cơ bản nhất về danh sách liên kết

    - Em ghi ra những chỗ không hiểu anh sẽ giải thích, cài đặt link list nếu dùng class thì nó rõ ràng hơn, với lại anh lại chuyên về C++, anh viết C cũng không vững lắm, nếu rảnh thì anh sẽ viết theo C, nhưng debug chắc anh cũng oải T_T.
    - Em cứ thấy chỗ nào thắc mắc ghi ra anh sẽ giải thích từng dòng 1 cho em hiểu, anh thừa nhiệt tình thì em cho anh thấy chút cố gắng đi nào ?

  7. #7
    Ngày gia nhập
    03 2008
    Bài viết
    21

    sau khi coi cái hàm set_position có vẻ hiểu ra đc chút ít, có phải mình tìm ra đc vi. trí của q roi` , sau đó chỉ việc q->data thui đúng hem ^^

Các đề tài tương tự

  1. Nhập và xuất danh sách liên kết lồng danh sách liên kết?
    Gửi bởi nvluong_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-04-2011, 11:30 AM
  2. Bài tập C++ Nhập xuất danh sách liên kết với lập trình C++, lúc nào cũng ra danh sách rỗng?
    Gửi bởi Le thi Ngoc Lan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 24-01-2011, 12:37 PM
  3. Nhập xuất danh sách bằng Danh Sách Liên Kết như thế nào?
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-12-2010, 10:16 AM
  4. Lỗi khi nhập danh sách liên kết
    Gửi bởi trihn_kt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 12-04-2010, 12:49 PM
  5. Danh sách liên kết, code nhập danh sách sinh viên có lỗi làm sao sửa?
    Gửi bởi acmilan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-04-2009, 08:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn