Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Cách tìm phần tử nhỏ nhất trong stack


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kenzabo
    mọi người cho em hỏi cách tìm ạ
    ví dụ như em có stack là
    3 4 1 2 5 thì làm cách nào để tìm phần tử nhỏ nhất là số 1 khi mà stack thì không cho duyệt phần tử như danh sách liên kết [IMG]images/smilies/17.gif[/IMG]
    dung2 pop so sánh nếu nhỏ hơn thì min sẽ là giá trị đó và đẩy phần tử đó lên đầu xem sao

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nếu ko muốn mất dữ liệu (tức là hủy stack) khi "duyệt stack" thì phải có 1 cái gì đó để đựng những thứ dc pop ra từ stack

    Giải thuật rất đơn giản:
    0 Tạo 1 cái rổ để đựng những thứ móc(pop) ra từ stack
    1 Pop lần lượt các phần tử ra ngoài, check để tìm cái nào có giá trị nhỏ hơn.
    2 Lấy cái rổ hứng phần tử vừa pop ra kẻo nó rơi mất
    3 Lặp lại bước 1 cho đến khi cạn stack

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kenzabo
    mọi người cho em hỏi cách tìm ạ
    ví dụ như em có stack là
    3 4 1 2 5 thì làm cách nào để tìm phần tử nhỏ nhất là số 1 khi mà stack thì không cho duyệt phần tử như danh sách liên kết [IMG]images/smilies/17.gif[/IMG]
    chà, mình ko thực sự trả lời câu hỏi của bạn. Mình thử đề nghị giải pháp thế này:
    Trc khi bạn push bất kì giá trị nào vào stack, bạn so sánh nó với biến tạm min/max, và bạn ko bao h phải duyệt stack nữa.

    Stack sinh ra ko phải để duyệt tuần tự, chi phí cho việc duyệt stack như vậy quá lớn.

    Có điều này bạn cho mình hỏi, stack của bạn đc cài đặt bằng kiểu cấu trúc dữ liệu nào, rất có thể linked list đã đc dùng cho việc cài đặt stack đấy [IMG]images/smilies/smile.png[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •