SlideShare a Scribd company logo
1 of 32
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 4: Stack và Queue liên kết
Con trỏ
Biểu diễn con trỏ bằng C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sử dụng con trỏ trong C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gán con trỏ trong C++ Gán nội dung: bình thường Gán con trỏ: nguy hiểm
Thiết kế node liên kết ,[object Object],[object Object],[object Object],[object Object]
Thiết kế node liên kết bằng C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ví dụ với node liên kết ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],first_node a p0 b p1 c p2
Stack liên kết
Khai báo stack liên kết ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thêm vào một stack liên kết ,[object Object],[object Object],[object Object],[object Object],new node new_top top_node old top middle last
Bỏ đỉnh của một stack liên kết ,[object Object],[object Object],[object Object],[object Object],old_top top_node old top middle old last
Thêm/Bỏ đỉnh của một stack liên kết – Mã C++ template  < class  Entry> Error_code push( const  Entry &item) { Node<Entry> *new_top =  new  Node<Entry>(item, top_node); if  (new_top == NULL)  return  overflow; top_node = new_top; } template  < class  Entry> Error_code pop( ) { Node<Entry> *old_top = top_node; if  (top_node == NULL)  return  underflow; top_node = old_top->next; delete  old_top; }
Sự không an toàn con trỏ trong C++ ,[object Object],[object Object],[object Object],[object Object],stack0 stack1 stack2 top middle last top middle last top middle last
Đảm bảo an toàn con trỏ trong C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Xóa vùng dữ liệu đang có ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sao chép vùng dữ liệu ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sao chép vùng dữ liệu – Ví dụ a b c copy_node new_top new_copy a b c copy.top_node
Sao chép vùng dữ liệu – Mã C++ Node<Entry> *new_top, *new_copy, *copy_node = copy.top_node; if  (copy_node == NULL) new_top = NULL; else  { // Sao chép vùng dữ liệu thành danh sách mới new_copy = new_top =  new  Node<Entry>(copy_node->entry); while  (copy_node->next != NULL) { copy_node = copy_node->next; new_copy->next =  new  Node<Entry>(copy_node->entry); new_copy = new_copy->next; } } clear();  //xóa rỗng dữ liệu hiện tại trước top_node = new_top;  // thay thế dữ liệu bằng danh sách mới.
Queue liên kết ,[object Object],[object Object],[object Object],front rear front rear front middle last
Khai báo Queue liên kết template  < class  Entry> class  Queue { public : Queue( ); bool  empty( )  const ; Error_code append( const  Entry &item); Error_code serve( ); Error_code retrieve(Entry &item)  const ; ~Queue( ); Queue( const  Queue<Entry> &original); void  operator = ( const  Queue<Entry> &original); protected : Node<Entry> *front, *rear; };
Thêm phần tử vào một queue liên kết ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],rear front middle last front new_last new_rear
Bỏ phần tử khỏi một queue liên kết ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],old_front front front middle last rear
Thêm/Bỏ phần tử của một queue liên kết – Mã C++ template  < class  Entry> Error_code append( const  Entry &item) { Node<Entry> *new_rear =  new  Node<Entry>(item); if  (new_rear == NULL)  return  overflow; if  (rear == NULL) front = rear = new_rear; else  {  rear->next = new_rear; rear = new_rear; } return  success; } template  < class  Entry> Error_code serve() { if  (front == NULL)  return  underflow; Node<Entry> *old_front = front; front = old_front->next; if  (front == NULL) rear = NULL; delete  old_front; return  success; }
Kích thước của một queue liên kết ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ứng dụng: tính toán đa thức ,[object Object],[object Object],[object Object],[object Object],[object Object]
Giải thuật cộng hai đa thức 1 Algorithm  Equals_sum1 Input : p,q là hai đa thức Output : đa thức tổng 1.  Trong khi p và q chưa rỗng 1.1.  Lấy phần tử front của p và q thành p_term, q_term 1.2.  Nếu bậc của p_term lớn  (hoặc nhỏ) hơn bậc của q_term 1.2.1.  Đẩy p_term (hoặc q_term) vào kết quả 1.2.2.  Bỏ phần tử đầu trong p (hoăc trong q) 1.3.  Ngược lại 1.3.1.  Tính hệ số mới cho số hạng này 1.3.2.  Đẩy vào kết quả 2.  Nếu p (hoặc q) chưa rỗng 2.1. Đẩy toàn bộ p (hoặc q) vào kết quả End  Equals_sum1
Ví dụ cộng hai đa thức bằng giải thuật 1 p = 3x 6  – 2x 4  + x 3  + 4 q = 5x 5  + 2x 4  + 4x 2  + 2x p + q = 3x 6  + 5x 5  + x 3  + 4x 2  + 2x + 4 <3.0, 6> <4.0, 0> < -2.0, 4> <1.0, 3> <5.0, 5> <2.0, 1> <2.0, 4> <4.0, 2> <3.0, 6> <5.0, 5> <1.0, 3> <4.0, 2> <2.0, 1> <4.0, 0>
Mã C++ cộng hai đa thức 1 Term p_term, q_term; while  (!p.empty( ) && !q.empty( )) { p.retrieve(p_term); q.retrieve(q_term); if  (p_tem.degree > q_term.degree) { p.serve(); append(p_term); }  else   if  (q_term.degree > p_term.degree) { q.serve(); append(q_term); }  else  { p.serve(); q.serve(); if  (p_term.coefficient + q_term.coefficient != 0) { Term answer_term(p_term.degree,  p_term.coefficient + q_term.coefficient); append(answer_term); } } } while  (!p.empty()) { p.serve_and_retrieve(p_term); append(p_term); } while  (!q.empty()) { q.serve_and_retrieve(q_term); append(q_term); }
Giải thuật cộng hai đa thức 2 Algorithm  Bac_da_thuc Input : đa thức Output : bậc của đa thức 1.  Nếu đa thức rỗng 1.1. Trả về -1 2.  Trả về bậc của phần tử đầu End  Bac_da_thuc Algorithm  Equals_sum2 Input : p,q là hai đa thức Output : đa thức tổng 1.  Trong khi p hoặc q chưa rỗng 1.1.  Nếu bậc của p lớn hơn bậc của q 1.1.1.  Lấy từ p thành term 1.1.2.  Đẩy term vào kết quả 1.2.  Nếu bậc của q lớn hơn bậc của p 1.2.1.  Lấy từ q thành term 1.2.2.  Đẩy term vào kết quả 1.3.  Ngược lại 1.3.1.  Lấy p_term, q_term từ p và q 1.3.2.  Tính tổng hai hệ số 1.3.3.  Nếu hệ số kết quả khác không 1.3.3.1.  Đẩy vào kết quả End  Equals_sum2
Ví dụ cộng hai đa thức bằng giải thuật 2 degree(p) = degree(p) = 5 6 p = 3x 6  – 2x 4  + x 3  + 4 q = 5x 5  + 2x 4  + 4x 2  + 2x p + q = 3x 6  + 5x 5  + x 3  + 4x 2  + 2x + 4 4 4 3 2 0 1 -1 -1 <3.0, 6> <4.0, 0> < -2.0, 4> <1.0, 3> <5.0, 5> <2.0, 1> <2.0, 4> <4.0, 2> <3.0, 6> <5.0, 5> <1.0, 3> <4.0, 2> <2.0, 1> <4.0, 0>
Mã C++ cộng hai đa thức 2 while  (!p.empty( ) || !q.empty( )) { Term p_term, q_term; if  (p.degree( ) > q.degree( )) { p.serve_and_retrieve(p_term); append(p_term); }  else   if  (q.degree( ) > p.degree( )) { q.serve_and_retrieve(q_term); append(q_term); }  else  { p.serve_and_retrieve(p_term); q.serve_and_retrieve(q_term); if  (p_term.coefficient + q_term.coefficient != 0) { Term answer_term(p_term.degree, p_term.coefficient + q_term.coefficient); append(answer_term); }  }  }

More Related Content

What's hot

bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitMit Rin
 
Kiểu Mảng 1 chiều
Kiểu Mảng 1 chiềuKiểu Mảng 1 chiều
Kiểu Mảng 1 chiềuHoaCat1
 
Bài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiBài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiHòa Hoàng
 
Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++ANHMATTROI
 
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Sân Ngoài Còn Lá
 
Bai.11.tot
Bai.11.totBai.11.tot
Bai.11.totsonnqsp
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Thanh Minh Hoang
 
Bai19 chuong trinh con (thu tuc va ham) - tin 11
Bai19  chuong trinh con (thu tuc va ham) - tin 11Bai19  chuong trinh con (thu tuc va ham) - tin 11
Bai19 chuong trinh con (thu tuc va ham) - tin 11Bich Tuyen
 
Bài 17 tin học 11
Bài 17 tin học 11Bài 17 tin học 11
Bài 17 tin học 11HaBaoChau
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conNhungoc Phamhai
 

What's hot (20)

bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptit
 
Session 09
Session 09Session 09
Session 09
 
Bai 17
Bai 17Bai 17
Bai 17
 
Kiểu Mảng 1 chiều
Kiểu Mảng 1 chiềuKiểu Mảng 1 chiều
Kiểu Mảng 1 chiều
 
Control structure in C
Control structure in CControl structure in C
Control structure in C
 
Bài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loạiBài 17 Chương trình con và phân loại
Bài 17 Chương trình con và phân loại
 
Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++
 
Basic C programming
Basic C programmingBasic C programming
Basic C programming
 
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
Bài 18. Ví dụ về cách viết và sử dụng chương trình con.
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 
Bai.11.tot
Bai.11.totBai.11.tot
Bai.11.tot
 
C6 stack queue
C6 stack queueC6 stack queue
C6 stack queue
 
Tn ktlt
Tn ktltTn ktlt
Tn ktlt
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
 
Bai19 chuong trinh con (thu tuc va ham) - tin 11
Bai19  chuong trinh con (thu tuc va ham) - tin 11Bai19  chuong trinh con (thu tuc va ham) - tin 11
Bai19 chuong trinh con (thu tuc va ham) - tin 11
 
Lab4
Lab4Lab4
Lab4
 
Bài 17 tin học 11
Bài 17 tin học 11Bài 17 tin học 11
Bài 17 tin học 11
 
C sharp
C sharpC sharp
C sharp
 
Các ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình conCác ví dụ về cách viết và sử dụng chương trình con
Các ví dụ về cách viết và sử dụng chương trình con
 

Viewers also liked

Ctdl C10
Ctdl C10Ctdl C10
Ctdl C10giang
 
Ctdl C08
Ctdl C08Ctdl C08
Ctdl C08giang
 
Ctdl C11
Ctdl C11Ctdl C11
Ctdl C11giang
 
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàngGiáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàngShin Nosuke
 
Ctdl C06
Ctdl C06Ctdl C06
Ctdl C06giang
 
Ctdl C09
Ctdl C09Ctdl C09
Ctdl C09giang
 
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcSlide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcLoc Tran
 
System hacking_Athena
System hacking_AthenaSystem hacking_Athena
System hacking_AthenaHuynh Khang
 
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...Security Bootcamp
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieugiang
 
Ctdl C07
Ctdl C07Ctdl C07
Ctdl C07giang
 
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPTBài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPTMasterCode.vn
 
tìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậttìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậtanhkhoa2222
 
Chương 6 Bảo mật - Giáo trình FPT
Chương 6 Bảo mật - Giáo trình FPTChương 6 Bảo mật - Giáo trình FPT
Chương 6 Bảo mật - Giáo trình FPTMasterCode.vn
 
Man In The Middle - Hacking Illustrated
Man In The Middle - Hacking IllustratedMan In The Middle - Hacking Illustrated
Man In The Middle - Hacking IllustratedInfoSec Institute
 
Bài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPT
Bài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPTBài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPT
Bài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPTMasterCode.vn
 
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTBài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTMasterCode.vn
 

Viewers also liked (20)

Ctdl C10
Ctdl C10Ctdl C10
Ctdl C10
 
Ctdl C08
Ctdl C08Ctdl C08
Ctdl C08
 
Ctdl C11
Ctdl C11Ctdl C11
Ctdl C11
 
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàngGiáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
 
Ctdl C06
Ctdl C06Ctdl C06
Ctdl C06
 
Ctdl C09
Ctdl C09Ctdl C09
Ctdl C09
 
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcSlide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
 
System hacking_Athena
System hacking_AthenaSystem hacking_Athena
System hacking_Athena
 
Avl
AvlAvl
Avl
 
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
 
Wireless
WirelessWireless
Wireless
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieu
 
Ctdl C07
Ctdl C07Ctdl C07
Ctdl C07
 
man in the middle
man in the middleman in the middle
man in the middle
 
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPTBài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
 
tìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậttìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mật
 
Chương 6 Bảo mật - Giáo trình FPT
Chương 6 Bảo mật - Giáo trình FPTChương 6 Bảo mật - Giáo trình FPT
Chương 6 Bảo mật - Giáo trình FPT
 
Man In The Middle - Hacking Illustrated
Man In The Middle - Hacking IllustratedMan In The Middle - Hacking Illustrated
Man In The Middle - Hacking Illustrated
 
Bài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPT
Bài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPTBài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPT
Bài 5: Quản trị một mạng an toàn và Bảo mật các mạng không dây - Giáo trình FPT
 
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTBài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
 

Similar to Ctdl C04

02 stack queue
02 stack queue02 stack queue
02 stack queuelanheo04
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08xcode_esvn
 
Giới thiệu ngôn ngữ lập trình C++
Giới thiệu ngôn ngữ lập trình C++Giới thiệu ngôn ngữ lập trình C++
Giới thiệu ngôn ngữ lập trình C++LAnhHuy4
 
Nmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inNmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inHuy Nguyễn
 
Bai5 dsachlket
Bai5 dsachlketBai5 dsachlket
Bai5 dsachlketHồ Lợi
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdfKinHongnh
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 HamCuong
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Kuli An
 

Similar to Ctdl C04 (20)

02 stack queue
02 stack queue02 stack queue
02 stack queue
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
 
Tut6 solution
Tut6 solutionTut6 solution
Tut6 solution
 
Tut6
Tut6Tut6
Tut6
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Giới thiệu ngôn ngữ lập trình C++
Giới thiệu ngôn ngữ lập trình C++Giới thiệu ngôn ngữ lập trình C++
Giới thiệu ngôn ngữ lập trình C++
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
Chương Trình Con
Chương Trình Con Chương Trình Con
Chương Trình Con
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 
Nmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inNmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_in
 
Bai5 dsachlket
Bai5 dsachlketBai5 dsachlket
Bai5 dsachlket
 
Session 13
Session 13Session 13
Session 13
 
Session 13
Session 13Session 13
Session 13
 
Lesson08
Lesson08Lesson08
Lesson08
 
Bai tap java
Bai tap javaBai tap java
Bai tap java
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdf
 
Session 09
Session 09Session 09
Session 09
 
Pointer vn
Pointer vnPointer vn
Pointer vn
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 Ham
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 

Recently uploaded

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạowindcances
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnGiới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnKabala
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfXem Số Mệnh
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàNguyen Thi Trang Nhung
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnpmtiendhti14a5hn
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...Nguyen Thanh Tu Collection
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdfltbdieu
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptPhamThiThuThuy1
 
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận HạnTử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận HạnKabala
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docxasdnguyendinhdang
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhdangdinhkien2k4
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnGiới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận HạnTử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Ctdl C04

  • 1. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 4: Stack và Queue liên kết
  • 3.
  • 4.
  • 5. Gán con trỏ trong C++ Gán nội dung: bình thường Gán con trỏ: nguy hiểm
  • 6.
  • 7.
  • 8.
  • 10.
  • 11.
  • 12.
  • 13. Thêm/Bỏ đỉnh của một stack liên kết – Mã C++ template < class Entry> Error_code push( const Entry &item) { Node<Entry> *new_top = new Node<Entry>(item, top_node); if (new_top == NULL) return overflow; top_node = new_top; } template < class Entry> Error_code pop( ) { Node<Entry> *old_top = top_node; if (top_node == NULL) return underflow; top_node = old_top->next; delete old_top; }
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Sao chép vùng dữ liệu – Ví dụ a b c copy_node new_top new_copy a b c copy.top_node
  • 19. Sao chép vùng dữ liệu – Mã C++ Node<Entry> *new_top, *new_copy, *copy_node = copy.top_node; if (copy_node == NULL) new_top = NULL; else { // Sao chép vùng dữ liệu thành danh sách mới new_copy = new_top = new Node<Entry>(copy_node->entry); while (copy_node->next != NULL) { copy_node = copy_node->next; new_copy->next = new Node<Entry>(copy_node->entry); new_copy = new_copy->next; } } clear(); //xóa rỗng dữ liệu hiện tại trước top_node = new_top; // thay thế dữ liệu bằng danh sách mới.
  • 20.
  • 21. Khai báo Queue liên kết template < class Entry> class Queue { public : Queue( ); bool empty( ) const ; Error_code append( const Entry &item); Error_code serve( ); Error_code retrieve(Entry &item) const ; ~Queue( ); Queue( const Queue<Entry> &original); void operator = ( const Queue<Entry> &original); protected : Node<Entry> *front, *rear; };
  • 22.
  • 23.
  • 24. Thêm/Bỏ phần tử của một queue liên kết – Mã C++ template < class Entry> Error_code append( const Entry &item) { Node<Entry> *new_rear = new Node<Entry>(item); if (new_rear == NULL) return overflow; if (rear == NULL) front = rear = new_rear; else { rear->next = new_rear; rear = new_rear; } return success; } template < class Entry> Error_code serve() { if (front == NULL) return underflow; Node<Entry> *old_front = front; front = old_front->next; if (front == NULL) rear = NULL; delete old_front; return success; }
  • 25.
  • 26.
  • 27. Giải thuật cộng hai đa thức 1 Algorithm Equals_sum1 Input : p,q là hai đa thức Output : đa thức tổng 1. Trong khi p và q chưa rỗng 1.1. Lấy phần tử front của p và q thành p_term, q_term 1.2. Nếu bậc của p_term lớn (hoặc nhỏ) hơn bậc của q_term 1.2.1. Đẩy p_term (hoặc q_term) vào kết quả 1.2.2. Bỏ phần tử đầu trong p (hoăc trong q) 1.3. Ngược lại 1.3.1. Tính hệ số mới cho số hạng này 1.3.2. Đẩy vào kết quả 2. Nếu p (hoặc q) chưa rỗng 2.1. Đẩy toàn bộ p (hoặc q) vào kết quả End Equals_sum1
  • 28. Ví dụ cộng hai đa thức bằng giải thuật 1 p = 3x 6 – 2x 4 + x 3 + 4 q = 5x 5 + 2x 4 + 4x 2 + 2x p + q = 3x 6 + 5x 5 + x 3 + 4x 2 + 2x + 4 <3.0, 6> <4.0, 0> < -2.0, 4> <1.0, 3> <5.0, 5> <2.0, 1> <2.0, 4> <4.0, 2> <3.0, 6> <5.0, 5> <1.0, 3> <4.0, 2> <2.0, 1> <4.0, 0>
  • 29. Mã C++ cộng hai đa thức 1 Term p_term, q_term; while (!p.empty( ) && !q.empty( )) { p.retrieve(p_term); q.retrieve(q_term); if (p_tem.degree > q_term.degree) { p.serve(); append(p_term); } else if (q_term.degree > p_term.degree) { q.serve(); append(q_term); } else { p.serve(); q.serve(); if (p_term.coefficient + q_term.coefficient != 0) { Term answer_term(p_term.degree, p_term.coefficient + q_term.coefficient); append(answer_term); } } } while (!p.empty()) { p.serve_and_retrieve(p_term); append(p_term); } while (!q.empty()) { q.serve_and_retrieve(q_term); append(q_term); }
  • 30. Giải thuật cộng hai đa thức 2 Algorithm Bac_da_thuc Input : đa thức Output : bậc của đa thức 1. Nếu đa thức rỗng 1.1. Trả về -1 2. Trả về bậc của phần tử đầu End Bac_da_thuc Algorithm Equals_sum2 Input : p,q là hai đa thức Output : đa thức tổng 1. Trong khi p hoặc q chưa rỗng 1.1. Nếu bậc của p lớn hơn bậc của q 1.1.1. Lấy từ p thành term 1.1.2. Đẩy term vào kết quả 1.2. Nếu bậc của q lớn hơn bậc của p 1.2.1. Lấy từ q thành term 1.2.2. Đẩy term vào kết quả 1.3. Ngược lại 1.3.1. Lấy p_term, q_term từ p và q 1.3.2. Tính tổng hai hệ số 1.3.3. Nếu hệ số kết quả khác không 1.3.3.1. Đẩy vào kết quả End Equals_sum2
  • 31. Ví dụ cộng hai đa thức bằng giải thuật 2 degree(p) = degree(p) = 5 6 p = 3x 6 – 2x 4 + x 3 + 4 q = 5x 5 + 2x 4 + 4x 2 + 2x p + q = 3x 6 + 5x 5 + x 3 + 4x 2 + 2x + 4 4 4 3 2 0 1 -1 -1 <3.0, 6> <4.0, 0> < -2.0, 4> <1.0, 3> <5.0, 5> <2.0, 1> <2.0, 4> <4.0, 2> <3.0, 6> <5.0, 5> <1.0, 3> <4.0, 2> <2.0, 1> <4.0, 0>
  • 32. Mã C++ cộng hai đa thức 2 while (!p.empty( ) || !q.empty( )) { Term p_term, q_term; if (p.degree( ) > q.degree( )) { p.serve_and_retrieve(p_term); append(p_term); } else if (q.degree( ) > p.degree( )) { q.serve_and_retrieve(q_term); append(q_term); } else { p.serve_and_retrieve(p_term); q.serve_and_retrieve(q_term); if (p_term.coefficient + q_term.coefficient != 0) { Term answer_term(p_term.degree, p_term.coefficient + q_term.coefficient); append(answer_term); } } }