Bài giảng Cấu trúc dữ liệu - Chương 5: Ngăn xếp - Hàng đợi
Số trang: 92
Loại file: ppt
Dung lượng: 2.23 MB
Lượt xem: 14
Lượt tải: 0
Xem trước 9 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Cấu trúc dữ liệu - Chương 5: Ngăn xếp - Hàng đợi" cung cấp cho người học các kiến thức cơ bản về: Khái niệm Stack, các thao tác trên Queue, hiện thực Queue, ứng dụng Queue, các thao tác trên Stack, hiện thực Stack, ứng dụng của Stack. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu - Chương 5: Ngăn xếp - Hàng đợi 1Chương5: NGĂNXẾP–HÀNGĐỢI (StackQueue) Nộidung 2 Ngăn xếp (Stack) Hàng đợi (Queue)Chương5:Ngănxếp–Hàngđợi Nộidung 3 Ngănxếp(Stack) KháiniệmStack CácthaotáctrênStack HiệnthựcStack ỨngdụngcủaStackChương5:Ngănxếp–Hàngđợi StackKháiniệm 4 Stacklàmộtdanhsáchmàcácđốitượngđượcthêmvàovà lấyrachỉởmộtđầucủadanhsách (Astackissimplyalistofelementswithinsertionsanddeletions permittedatoneend) Vìthế,thaotáctrênStackđượcthựchiệntheocơchếLIFO (LastInFirstOutVàosauratrước)Chương5:Ngănxếp–Hàngđợi Stack–Cácthaotác 5 Stackhỗtrợ2thaotácchính: Push: Thêm1đốitượngvàoStack Pop: Lấy1đốitượngrakhỏi Stack Vídụ: 5234 Stackcũnghỗtrợmộtsốthaotáckhác: isEmpty():KiểmtraxemStackcórỗngkhông Top():Trảvềgiátrịcủaphầntửnằmởđầu StackmàkhônghủynókhỏiStack.NếuStack rỗngthìlỗisẽxảyraChương5:Ngănxếp–Hàngđợi Stack–HiệnthựcStack (ImplementationofaStack) 6 Mảng1chiều DanhsáchLK Kích thước stack Cấp phát khi quá thiếu, lúc động! quá thừa Push/Pop khá dễ Push / Pop dàng khá phức tạpChương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng (ImplementationofaStackusingArray) 7 CóthểtạomộtStackbằngcáchkhaibáomộtmảng1chiều vớikíchthướctốiđalàN(vídụ:N=1000) StackcóthểchứatốiđaNphầntửđánhsốtừ0đếnN1 PhầntửnằmởđỉnhStacksẽcóchỉsốlàtop Nhưvậy,đểkhaibáomộtStack,tacầnmộtmảng1chiều, và1biếnsốnguyêntopchobiếtchỉsốcủađỉnhStack: structStack{ DataTypelist[N]; inttop; };Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 8 Cáchàmcầncàiđặt: Init(Stack&s):KhởitạoStack isEmpty(Stacks) Push(Stack&s,DataTypex) Pop(Stack&s) Top(Stack&s) Khicàiđặtbằngmảng1chiều,Stackbịgiớihạnkíchthước nêncầnxâydựngthêmmộtthaotácphụchoStack: isFull():KiểmtraxemStackcóđầychưa,vìkhiStackđầy,việc gọiđếnhàmPush()sẽbịlỗiChương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 9 KhởitạoStack: void Init (Stack &s) { s.top = 0; }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 10 KiểmtraStackcórỗnghaykhông: Rỗng:hàmtrảvề1 Ngượclại:hàmtrảvề0 int isEmpty(Stack s) { if ( s.top==0 ) return 1; // stack rỗng else return 0; }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 11 KiểmtraStackcóđầyhaykhông: Đầy:hàmtrảvề1 Ngượclại:hàmtrảvề0 int isFull(Stack s) { if (s.top>=N) return 1; else return 0; }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 12 ThêmmộtphầntửxvàoStack void Push (Stack &s, DataType x) { if (!isFull(s)) //stackchưađầy { s.list[s.top] = x; s.top++; } }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 13 LấymộtphầntửrakhỏiStack DataTyp ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu - Chương 5: Ngăn xếp - Hàng đợi 1Chương5: NGĂNXẾP–HÀNGĐỢI (StackQueue) Nộidung 2 Ngăn xếp (Stack) Hàng đợi (Queue)Chương5:Ngănxếp–Hàngđợi Nộidung 3 Ngănxếp(Stack) KháiniệmStack CácthaotáctrênStack HiệnthựcStack ỨngdụngcủaStackChương5:Ngănxếp–Hàngđợi StackKháiniệm 4 Stacklàmộtdanhsáchmàcácđốitượngđượcthêmvàovà lấyrachỉởmộtđầucủadanhsách (Astackissimplyalistofelementswithinsertionsanddeletions permittedatoneend) Vìthế,thaotáctrênStackđượcthựchiệntheocơchếLIFO (LastInFirstOutVàosauratrước)Chương5:Ngănxếp–Hàngđợi Stack–Cácthaotác 5 Stackhỗtrợ2thaotácchính: Push: Thêm1đốitượngvàoStack Pop: Lấy1đốitượngrakhỏi Stack Vídụ: 5234 Stackcũnghỗtrợmộtsốthaotáckhác: isEmpty():KiểmtraxemStackcórỗngkhông Top():Trảvềgiátrịcủaphầntửnằmởđầu StackmàkhônghủynókhỏiStack.NếuStack rỗngthìlỗisẽxảyraChương5:Ngănxếp–Hàngđợi Stack–HiệnthựcStack (ImplementationofaStack) 6 Mảng1chiều DanhsáchLK Kích thước stack Cấp phát khi quá thiếu, lúc động! quá thừa Push/Pop khá dễ Push / Pop dàng khá phức tạpChương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng (ImplementationofaStackusingArray) 7 CóthểtạomộtStackbằngcáchkhaibáomộtmảng1chiều vớikíchthướctốiđalàN(vídụ:N=1000) StackcóthểchứatốiđaNphầntửđánhsốtừ0đếnN1 PhầntửnằmởđỉnhStacksẽcóchỉsốlàtop Nhưvậy,đểkhaibáomộtStack,tacầnmộtmảng1chiều, và1biếnsốnguyêntopchobiếtchỉsốcủađỉnhStack: structStack{ DataTypelist[N]; inttop; };Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 8 Cáchàmcầncàiđặt: Init(Stack&s):KhởitạoStack isEmpty(Stacks) Push(Stack&s,DataTypex) Pop(Stack&s) Top(Stack&s) Khicàiđặtbằngmảng1chiều,Stackbịgiớihạnkíchthước nêncầnxâydựngthêmmộtthaotácphụchoStack: isFull():KiểmtraxemStackcóđầychưa,vìkhiStackđầy,việc gọiđếnhàmPush()sẽbịlỗiChương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 9 KhởitạoStack: void Init (Stack &s) { s.top = 0; }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 10 KiểmtraStackcórỗnghaykhông: Rỗng:hàmtrảvề1 Ngượclại:hàmtrảvề0 int isEmpty(Stack s) { if ( s.top==0 ) return 1; // stack rỗng else return 0; }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 11 KiểmtraStackcóđầyhaykhông: Đầy:hàmtrảvề1 Ngượclại:hàmtrảvề0 int isFull(Stack s) { if (s.top>=N) return 1; else return 0; }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 12 ThêmmộtphầntửxvàoStack void Push (Stack &s, DataType x) { if (!isFull(s)) //stackchưađầy { s.list[s.top] = x; s.top++; } }Chương5:Ngănxếp–Hàngđợi HiệnthựcStackdùngmảng(tt.) (ImplementationofaStackusingArray) 13 LấymộtphầntửrakhỏiStack DataTyp ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu và giải thuật Bài giảng Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu Ngăn xếp Hàng đợi Thao tác trên Queue Hiện thực QueueGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 304 0 0 -
3 trang 157 3 0
-
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 156 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 155 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 148 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 142 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 139 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 137 0 0 -
10 trang 136 0 0
-
57 trang 118 1 0