Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
4,07 MB
Nội dung
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT ĐỀ TÀI “CÀI ĐẶT CÂY NHỊ PHÂN TÌM KIẾM VỚI CÁC THAO TÁC TRÊN CÂY” Giảng viên hướng dẫn: ThS.Nguyễn Thị Tâm Sinh viên thực hiện: Hoàng Quốc Khánh – 2010A04 Trần Thanh Tâm – 2010A03 Bùi Tuấn Anh – 2010A02 Lê Tuấn Sơn – 1810A03 Hà Nội, 2021 MỤC LỤC XÁC ĐỊNH BÀI TOÁN .3 I II CẤU TRÚC DỮ LIỆU TỔ CHỨC CHO BÀI TOÁN - Input: - Output: III CÁC THUẬT TOÁN .4 Thêm node vào Duyệt LNR Duyệt theo RNL Tìm node 5 Xóa node .6 Sửa thông tin node .6 Tính tổng lương (hoặc tổng hệ số lương) Đếm số phần tử Tính độ cao IV LẬP TRÌNH – CÀI ĐẶT - Thêm node vào - Duyệt RNL LNR - Tìm kiếm node - Xóa node - Sửa thông tin node - Tổng lương 10 - Độ cao .10 - Số node 10 V KIỂM THỬ 10 *Q trình lương (Hồng Quốc Khánh) 10 *Chức vụ (Bùi Tuấn Anh) .16 *Nhân viên (Lê Tuấn Sơn) 23 *Phòng ban (Trần Thanh Tâm) 28 Link src code 33 BẢNG PHÂN CÔNG CÔNG VIỆC HỌ VÀ TÊN Hoàng Quốc Khánh Trần Thanh Tâm Bùi Tuấn Anh Lê Tuấn Sơn CƠNG VIỆC Cài đặt với Q trình lương Cài đặt với Phòng ban Cài đặt với Chức vụ Cài đặt với Nhân viên GHI CHÚ I XÁC ĐỊNH BÀI TỐN Chọn tốn xác định: quản lý lương doanh nghiệp Xác định đối tượng cần quản lý (mỗi người cài đặt đối tượng khác nhau): Các chức cần có: II CẤU TRÚC DỮ LIỆU TỔ CHỨC CHO BÀI TOÁN Cấu trúc: Cây tìm kiếm nhị phân - Input: o Nhập danh sách đối tượng (node) o Thông tin node cần thêm o Mã đối tượng cần tìm o Mã đối tượng cần xóa o Mã đối tượng cần sửa - Output: o Hiện danh sách đối tượng o Tổng lương (hoặc tổng hệ số lương) đối tượng o Số lượng phần tử o Độ cao III CÁC THUẬT TOÁN Thêm node vào Duyệt LNR Duyệt theo RNL Tìm node 5 Xóa node Sửa thơng tin node Tính tổng lương (hoặc tổng hệ số lương) Đếm số phần tử Tính độ cao IV LẬP TRÌNH – CÀI ĐẶT - Thêm node vào void insert_Node(Tree &root, Data data){ if(root != NULL){ if(root->infor.ma == data.ma) return; if(root->infor.ma < data.ma) insert_Node(root->right,data); else insert_Node(root->left,data); } else{ root = new Node; root->infor = data; root->left = NULL; root->right = NULL; } } - Duyệt RNL LNR void RNL(Tree root){ if(root != NULL){ RNL(root->right); hien_1(root->infor); RNL(root->left); } } void LNR(Tree root){ if(root != NULL){ LNR(root->left); hien_1(root->infor); LNR(root->right); } } - Tìm kiếm node Node *tim_kiem_X(Tree root, int x){ Node *p = root; while(p != NULL){ if(p->infor.ma == x){ return p; }else { if(p->infor.ma > x){ p = p->left; } else if(p->infor.ma < x){ p = p->right; } } } return NULL; } - Xóa node void xoa_Node_Y(Tree &root, int y){ //XÓA MỘT NODE TRÊN CÂY if(root == NULL){ return; }else { if(root->infor.ma > y){ xoa_Node_Y(root->left,y); }else if(root->infor.ma < y){ xoa_Node_Y(root->right,y); }else { Node *X = root; // node mạng(bị xóa) if(root->left == NULL){ // TH1: có phải root = root->right; }else if(root->right == NULL){ // TH2: có trái root = root->left; }else{ // TH3: có trái phải Node *Y = root->right; // biến Y đảm nhận nhiệm vụ tìm node mạng tim_node_the_mang(X,Y); } delete X; cout left); }else { X->infor = Y->infor; // infor node X = infor node mạng X = Y; // biến X trỏ đến node mạng Y = Y->right; // cập nhật lại mối liên kết } } - Sửa thông tin node void sua_thong_tin (Tree &root,Data data){ int x; cout > x; Node *p = tim_kiem_X(root,x); if(p != NULL){ nhap(data); p->infor = data; } } 19 20 21 22 *Nhân viên (Lê Tuấn Sơn) 23 24 25 26 27 *Phòng ban (Trần Thanh Tâm) 28 29 30 31 32 Link src code: https://drive.google.com/drive/folders/1tBDdWHNSZbGtOTcVi0_y93qvgL9_BWn?usp=sharing 33 ... 33 BẢNG PHÂN CƠNG CƠNG VIỆC HỌ VÀ TÊN Hồng Quốc Khánh Trần Thanh Tâm Bùi Tuấn Anh Lê Tuấn Sơn CÔNG VIỆC Cài đặt với Quá trình lương Cài đặt với Phòng ban Cài đặt với Chức vụ Cài đặt với Nhân... định đối tượng cần quản lý (mỗi người cài đặt đối tượng khác nhau): Các chức cần có: II CẤU TRÚC DỮ LIỆU TỔ CHỨC CHO BÀI TỐN Cấu trúc: Cây tìm kiếm nhị phân - Input: o Nhập danh sách đối tượng... .3 I II CẤU TRÚC DỮ LIỆU TỔ CHỨC CHO BÀI TOÁN - Input: - Output: III CÁC THUẬT TOÁN .4 Thêm node vào Duyệt