Stack
This presentation is the property of its rightful owner.
Sponsored Links
1 / 42

Stack PowerPoint PPT Presentation


  • 188 Views
  • Uploaded on
  • Presentation posted in: General

Stack. Data structure & Algorithms. Stack. Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In, First-Out) Operations พื้นฐานของ Stack ได้แก่ - การนำข้อมูลเข้าสู่ Stack เรียกว่า Push - การนำข้อมูลออกจาก Stack เรียกว่า Pop - การเรียกใช้ข้อมูลจาก Stack เรียกว่า Top

Download Presentation

Stack

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Stack

Stack

Data structure & Algorithms


Stack1

Stack

  • Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In, First-Out)

  • Operations พื้นฐานของ Stack ได้แก่

    - การนำข้อมูลเข้าสู่ Stack เรียกว่า Push

    - การนำข้อมูลออกจาก Stack เรียกว่า Pop

    - การเรียกใช้ข้อมูลจาก Stack เรียกว่า Top

  • การสร้าง Stack

    - ใช้ Array แทน Stack

    - ใช้ Linked list แทน Stack

Company Logo


Stack

Stack

Company Logo


Stack

เพิ่มข้อมูลใน Stack: Push

Company Logo


Stack

นำข้อมูลออกจาก Stack : Pop

Company Logo


Stack

เรียกใช้ข้อมูลใน Stack: Top

Company Logo


Stack

Company Logo


Stack

Company Logo


Stack

Linked listแทนStack

Company Logo


Stack

Linked listแทนStack

Company Logo


Stack

Company Logo


Stack

Company Logo


Operations stack linked list

Operations พื้นฐานของ Stack ที่สร้างด้วย Linked list

1. Create stack: สร้าง stack head node

2. Push stack: เพิ่มรายการใน stack

3. Pop stack: ลบรายการใน stack

4. Stack top: เรียกใช้รายการข้อมูลที่อยู่บนสุดของ stack

5. Empty stack: ตรวจสอบว่า stack ว่างเปล่าหรือไม่

6. Full stack: ตรวจสอบว่า stack เต็มหรือไม่

7. Stack count: ส่งค่าจำนวนรายการใน stack

8. Destroy stack: คืนหน่วยความจำของทุก node ใน stack ให้ระบบ

Company Logo


Stack

Stack Applications: Balancing Symbols

Company Logo


Stack

Stack Applications: Infix to Postfix conversion

The conversion time is O(n)

Company Logo


Stack

Postfix expression evaluation

The evaluation time is O(n)

Company Logo


Backtracking

Backtracking

Backtracking คือวิธีการหาคำตอบโดยเดินหน้าไปยังเป้าหมายเมื่อถึงทางแยกก็จะต้องตัดสินใจเลือกเส้นทางใดเส้นทางหนึ่งเดินหน้าต่อไปเพื่อหาเป้าหมายหากเดินไปจนสุดเส้นทางแล้วยังไม่พบเป้าก็จะเดินย้อนกลับมายังจุดแยกครั้งสุดท้ายแล้วเลือกเส้นทางใหม่ที่ยังไม่เคยไปทำเช่นนี้ไปเรื่อยๆจนกว่าจะพบเป้าหมายหรือจนครบทุกเส้นทาง

Backtracking เป็นการประยุกต์ใช้โครงสร้างข้อมูลแบบ Stack สำหรับการเขียนโปรแกรมประเภทเกมส์คอมพิวเตอร์ (computer gaming) การวิเคราะห์การตัดสินใจ(decision analysis) และระบบผู้เชี่ยวชาญ(expert system) ตัวอย่างปัญหาที่ใช้วิธี Backtracking เช่นปัญหาการค้นหาเป้าหมาย (goal seeking) และปัญหา 8 ราชินี (eight queens problem)

Company Logo


Stack

Stack Applications: Backtracking

Company Logo


Stack

Stack Applications: Backtracking

Company Logo


Stack

Stack Applications: Backtracking

Company Logo


Stack

Stack Applications: Backtracking

Company Logo


Queue

Queue

Data structure & Algorithms


Queue1

Queue

  • Queue เป็นโครงสร้างข้อมูลแบบ FIFO (First-In, First-Out)

  • Operations พื้นฐานของ Queue ได้แก่

    - การนำข้อมูลเข้าสู่ Queue เรียกว่า Enqueue

    - การนำข้อมูลออกจาก Queue เรียกว่า Dequeue

    - การเรียกใช้ข้อมูลจากหัวแถวของ Queue เรียกว่า Front

    - การเรียกใช้ข้อมูลจากท้ายแถวของ Queue เรียกว่า Rear

  • การสร้าง Queue

    - ใช้ Array แทน queue

    - ใช้ Linked list แทน queue

Company Logo


The queue concept

The Queue concept

Company Logo


Stack

Operation Enqueue

Company Logo


Stack

Operation Dequeue

Company Logo


Stack

Operation QueueFront

Company Logo


Stack

Figure 5-5

Operation QueueRear

Company Logo


Stack

Figure 5-6

Queue Operations

Company Logo


Stack

Queue Operations

Company Logo


Stack

โครงสร้างของQueue แบบArray

Company Logo


Stack

Is queue full?

Company Logo


Stack

Circular Queue

Company Logo


Queue linked list

โครงสร้างของQueue แบบLinked list

Company Logo


Queue data structure

Queue data structure

Company Logo


Algorithm queue

Algorithm พื้นฐานของ Queue

1.Create queue:สร้างqueue headจากdynamic memory

2. Enqueue:เพิ่มรายการเข้าไปในqueue

3. Dequeue:ลบรายการออกจากqueue

4. Queue front:เรียกใช้ข้อมูลที่ด้านหน้าของqueue

5. Queue rear:เรียกใช้ข้อมูลที่ด้านหน้าของqueue

6. Empty queue:ตรวจสอบว่าqueueว่างหรือไม่

7. Full queue:ตรวจสอบว่าqueueเต็มหรือไม่

(มีหน่วยความจำ จัดให้ได้หรือไม่)

8. Queue count:บอกจำนวนรายการในqueue

9. Destroy queue: ลบข้อมูลทั้งหมดในqueueและคืนหน่วยความจำ

ให้ระบบแล้วลบและคืนหน่วยความจำของhead node

Company Logo


Stack

Create and enqueue

Company Logo


Stack

Company Logo


Stack

เพิ่มข้อมูลเข้า Queue

Company Logo


Stack

ลบข้อมูลออกจากเข้า Queue

Company Logo


Queue application

Queue Application

การเขียนฟังก์ชันชื่อ matching เพื่ออ่านอักขระจากแป้นพิมพ์ แล้วทำการตรวจสอบดูว่า อักขระที่อ่านมานั้น อักขระทุกตัวก่อนหน้าจุดและอักขระทุกตัวที่อยู่หลังจุด เหมือนกันหรือไม่ ถ้าเหมือนกันฟังก์ชันจะส่งคืนค่า 1 มิฉะนั้นจะคืนค่า 0 โดยลักษณะของอักขระที่อ่านจากแป้นพิมพ์ มีดังนี้

อักขระย่อย1.อักขระย่อย2

โดยที่อักขระย่อยก่อนหน้าจุดและอักขระย่อยหลังจุดมีขนาดความยาวเท่ากัน

Company Logo


Stack

int matching()

{

char c1, c2;

QueueType queue;

int match;

clearQ(queue);

while((c1=getchar()) != '.')

enq(queue, c1);

match = 1;

while(!emptyQ(queue)&& match)

{ c1 = deq(queue);

c2 = getchar();

if (c2 != c1)

match = 0;

}

return (match);

}

Company Logo


  • Login