stack
Download
Skip this Video
Download Presentation
Stack

Loading in 2 Seconds...

play fullscreen
1 / 42

Stack - PowerPoint PPT Presentation


  • 228 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Stack' - kovit


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

slide3
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

slide15
Stack Applications: Infix to Postfix conversion

The conversion time is O(n)

Company Logo

slide16
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

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

slide25
Operation Enqueue

Company Logo

slide26
Operation Dequeue

Company Logo

slide28
Figure 5-5

Operation QueueRear

Company Logo

slide29
Figure 5-6

Queue Operations

Company Logo

slide30
Queue Operations

Company Logo

slide32
Is queue full?

Company Logo

slide33
Circular Queue

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

queue application
Queue Application

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

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

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

Company Logo

slide42
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

ad