Cấu trúc dữ liệu C++ phần 5

20 382 0
Cấu trúc dữ liệu C++ phần 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Cấu trúc liệu vá thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NỘIMaster DUNGTitle Style Click To Edit DANH SÁCH LIÊN KẾT KÉP Định Nghĩa Click To Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Mỗi phần tử liên kết với phần tử đứng trước sau danh sách • Hình vẽ minh họa danh sách liên kết kép: A B C D CấuClick Trúc To Dữ Liệu Edit Master Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Cấu trúc liệu nút typedef struct tagDnode { Data Info; struct tagDnode *pPre; struct tagDnode *pNext; }DNode; • Cấu trúc List kép Typedef struct tagDList { DNode *pHead; DNode *pTail; }DList; CácClick Thao To TácEdit TrênMaster List Kép Title • Khởi tạo danh sách liên kết kép rỗng CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải • Tạo nút có thành phần liệu = x • Chèn phần tử vào danh sách – Chèn vào đầu – Chèn sau phần tử Q – Chèn vào trước phần tử Q – Chèn vào cuối danh sách • Huỷ phần tử danh sách – Hủy phần tử đầu danh sách – Hủy phần tử cuối danh sách – Hủy phần tử có khố x • Tìm phần tử danh sách • Sắp xếp danh sách Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải TạoClick Danh ToSách EditRỗng Master void CreateDList(DList &l) { l.DHead=NULL; l.DTail=NULL; } Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải TạoClick NútTo Có Edit ThànhMaster Phần Dữ LiệuStyle =X Title DNode *CreateDNode(int x) { DNode *tam; tam=new DNode; if(tam==NULL) { printf("khong du bo nho"); exit(1); } else { tam->Info=x; tam->pNext=NULL; tam->pPre=NULL; return tam; } } Thêm Nút Đầu Danh Sách Click ToVào Edit Master Title Style • Minh họa hình vẽ pHead CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải A B C D pTail X CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick Đặt Thêm NútMaster Vào ĐầuTitle DanhStyle Sách To Edit void AddFirst(DList &l, DNode *tam) { if(l.pHead==NULL)//xau rong { l.pHead=tam; l.pTail=l.pHead; } else { tam->pNext=l.pHead; l.pHead->pPre=tam; l.pHead=tam; } } Thêm VàoTo Cuối Danh Sách Click Edit Master Title Style • Minh họa thêm phần tử vào sau danh sách pTail CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải pHead A B C D X CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick Đặt Thêm NútMaster Vào Cuối Danh Sách To Edit Title Style void AddEnd(DList &l,DNode *tam) { if(l.pHead==NULL) { l.pHead=tam; l.pTail=l.pHead; } else { tam->pPre=l.pTail; l.pTail->pNext=tam; l.pTail=tam; } } 10 Thêm VàoTo Sau Nút Master Q Click Edit Title Style • Minh họa thêm nút X vào sau nút q CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải pHead A pTail q B C X 11 D CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick Đặt Thêm NútMaster Vào SauTitle Nút Q To Edit Style void AddLastQ(DList &l,DNode *tam, DNode *q) { DNode *p; p=q->pNext; if(q!=NULL)//them vao duoc { tam->pNext=p; tam->pPre=q; q->pNext=tam; if(p!=NULL) p->pPre=tam; if(q==l.pTail) //them vao sau danh sach lien ket l.pTail=tam; } else AddFirst(l,tam); } 12 Thêm Nút Trước Nút Q Click ToVào Edit Master Title Style • Minh hoạ thêm nút vào trước nút q CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải pHead A pTail q B C X 13 D CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick Đặt Thêm NútMaster Vào Trước NútStyle Q To Edit Title void AddBeforeQ(DList &l,DNode *tam,DNode *q) { DNode *p; p=q->pPre; if(q!=NULL) { tam->pNext=q; q->pPre=tam; tam->pPre=p; if(p!=NULL) p->pNext=tam; if(q==l.pHead) l.pHead = tam; } else AddEnd(l,tam); } 14 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải XoáClick PhầnTo Tử Edit Đầu Danh Sách Master Title void DeleteFirst(DList &l) { DNode *p; if(l.pHead!=NULL) { p=l.pHead; l.pHead=l.pHead->pNext; l.pHead->pPre=NULL; delete p; if(l.pHead==NULL) l.pTail=NULL; } } 15 Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải XoáClick Phần Cuối Danh Sách ToTử Edit Master Title Style void DeleteEnd(DList &l ) { DNode *p; if(l.pHead!=NULL) //tuc xau co hon mot phan tu { p=l.pTail; l.pTail=l.pTail->Pre; l.pTail->pNext=NULL; delete p; if(l.pTail==NULL) l.pHead=NULL; } } 16 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải HủyClick NútTo SauEdit Nút Master Q void DeleteLastQ(DList &l,DNode *q) { DNode *p;//luu node dung sau node q if(q!=NULL) { p=q->pNext; if(p!=NULL) { q->pNext=p->pNext; if(p==l.pTail)//xoa dung nu't cuoi l.pTail=q; else //Nut xoa khong phai nut cuoi p->pNext->pPre=q; delete p; } } else DeleteFirst(l); } 17 Title Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải HuỷClick NútTo Đứng Trước Nút QTitle Edit Master void DeleteBeforeQ(DList &l,DNode *q) { DNode *p; if(q!=NULL) //tuc ton tai node q { p=q->pPre; if(p!=NULL) { q->pPre=p->pPre; if(p==l.pHead)//p la Node dau cua danh sach l.pHead=q; else //p khong phai la node dau p->pPre->pNext=q; delete p; } } else DeleteEnd(l); } 18 Style CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải XốClick Phần Có Master Khố = XTitle ToTử Edit Style int DeleteX(DList &l,int x) { DNode *p; DNode *q; q=NULL; p=l.pHead; while(p!=NULL) { if(p->Info==x) break; q=p;//q la Node co truong Info = x p=p->pNext; } if(q==NULL) return 0;//khong tim thay Node nao co truong Info =x if(q!=NULL) DeleteLastQ(l,q); else DeleteFirst(l); return 1; } 19 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải SắpClick Xếp To Edit Master Title Style void DoiChoTrucTiep(DList &l) { DNode *p,*q; p=l.pHead; while(p!=l.pTail) { q=p->pNext; while(q!=NULL) { if(p->Info>q->Info) HV(p,q); q=q->pNext; } p=p->pNext; }} 20 ... Style • Minh họa thêm phần tử vào sau danh sách pTail CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải pHead A B C D X CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick... Master Title Style • Minh họa hình vẽ pHead CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải A B C D pTail X CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick Đặt Thêm NútMaster... Minh họa thêm nút X vào sau nút q CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải pHead A pTail q B C X 11 D CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúc liệu vá thuật giải CàiClick Đặt Thêm

Ngày đăng: 15/12/2013, 16:42

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan