ÔN TÂP CẤU TRÚC DỮ LIỆU

7 84 0
ÔN TÂP CẤU TRÚC DỮ LIỆU

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

Thông tin tài liệu

Câu 1: Giải thuật bổ sung nút vào trước nút Q danh sách móc nối hai chiều * Ý tưởng:  Cho trỏ L R trỏ tới nút cực trái nút cực phải danh sách móc nối kép, Q trỏ tới nút danh sách  Bổ sung nút vào trước nút trỏ Q tức nút cực trái nút trỏ đến nút trước Q, nút cực phải nút trỏ đến Q  Ta bổ sung nút vào trước Q Giải thuật: (R=pcuoi, L=pdau ) Insert_B(L,R,Q,X) { P=malloc(); P->DATA=X; P->P_R=NULL; P->P_L=NULL; if(R==NULL) //danh sách rỗng L=R=P; else{ if(Q==L){ P->P_R=Q; Q->P_L=P; L=P; } else{ P->P_L=Q->P_L; P->P_R=Q; Q->P_L=P; (P->P_L)->P_R=P; } } Câu 2: Giải thuật loại nút trỏ Q danh sách móc nối hai chiều Cho L R hai trỏ trái phải danh sách móc nối kép, Q trỏ tới nút danh sách Ta loại bỏ nút trỏ Q khỏi danh sách DELETE(L, R,Q) { if (R==NULL) Printf(“Danh sách rỗng”); else { if( L==R) L=R=NULL; else if ( Q=L ) { L=L->P_R; L->P_L=NULL; } else if (M=R) { R=R->P_L; R->P_R=NULL; } else { Q->P_L->P_R=Q->P_R; Q->P_R->P_L=Q->P_L; } free(Q); } } Giải thuật duyệt sau không dùng đệ quy:  Ý tưởng: Đầu tiên ta thăm nút trái, sau thăm nút phải cuối thăm nút gốc Như nút gốc thăm duyệt xong Tức nút gốc duyệt từ phải lên gặp gốc từ lần từ trái lên gặp gốc Dùng stack để khử đệ quy  Giải thuật: TT_SAU_S(T) { if(T==NULL) { printf("Cây rỗng"); return; } else{ TOP=-1; P=T; } while(1) { while(P!=NULL) { PUSH(S,TOP,P); P=P->P_L; } while(S[TOP]DATA); if(TOP==-1) return; } P=S[TOP]->P_R; S[TOP]=S[TOP] ; } } Giải thuật Quick_sort  Ý tưởng: chọn khóa ngẫu nhiên dãy làm chốt Mọi phần tử nhỏ chốt nằm trước phần tử chốt, phần tử lớn chốt nằm sau chốt Muốn vậy, phần tử dãy phải so sánh với khóa chốt đổi vị trí cho cho chốt phần tử lớn chốt nằm trước chốt phần tử nhỏ chốt nằm sau chốt Khi việc đổi chỗ thực xong dãy phân làm hai đoạn: đoạn gồm phần tử nhỏ chốt, đoạn gồm phần tử lớn chốt, khóa chốt nằm hai đoạn nói vị trí thực cảu khóa chốt mà dãy xếp xong Đây coi kết thúc lượt xếp Áp dụng phương pháp cho đoạn tiếp tục làm đoạn phần tử Khi tồn dãy xếp  Giải thuật: Quick_sort(K,t,p) { if(t

Ngày đăng: 27/09/2019, 18:29

Từ khóa liên quan

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

Tài liệu liên quan