ลักษณะการทำงานของ Stack

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Bansomdej Chaopraya Rajabhat University
Advertisements

โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
โครงสร้างภาษาซี เบื้องต้น
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
Computer Programming 1 LAB Test 3
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
บทที่ 5 โครงสร้างข้อมูลคิว
ข้อมูลชนิดโครงสร้าง (Structure Data)
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
สถาปัตยกรรมแบบ stack และ การผลิตโค๊ด
การผลิตโค๊ดสำหรับ Procedure Call
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Functional Programming
Data Structures and Algorithms
Stack.
Lecture 13: ฟังก์ชันเรียกตัวเอง
Stack Holidays/seasonal content.
Data structure & Algorithms
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
Computer Programming 1 LAB # 6 Function.
LAB # 4.
บทที่ 4 การตัดสินใจในการเขียนโปรแกรม
บรรยายครั้งที่ 2: Stack
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
คิวQueue Circular Queue.
บทที่ 15 โปรแกรมย่อยและแสต็ก
Flowchart รูปแบบ If ซ้อน If ก็คือ การเอา If ไปไว้ใน If ทางฝั่ง True  โดยโครงสร้าง If ซ้อน If นั้นเอาไว้ใช้กับ กรณีตรวจสอบเงื่อนไขที่มากกว่า 2 กรณี เพราะเนื่องจาก.
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
คำสั่งควบคุมการทำงาน
Lecture 9 Class (คลาส) To do: Hand back assignments
Infix to Postfix มหาวิทยาลัยเนชั่น หลักการภาษาชุดคำสั่ง
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
การรับและพิมพ์ข้อมูลเบื้องต้น
Week 10 การเขียนโปรแกรมเบื้องต้น #2
Computer Programming for Engineers
Recursion การเรียกซ้ำ
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
บทที่ 4 ตัวแบบควบคู่ และการวิเคราะห์ความไว (Dual Problem and Sensitivity Analysis) Operations Research โดย อ. สุรินทร์ทิพ ศักดิ์ภูวดล.
กองซ้อน ยอดกองซ้อน (stack).
โครงสร้างข้อมูลแบบกองซ้อน (Stack)
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
PHP การตรวจสอบเงื่อนไข.
บทที่ 6 โครงสร้างข้อมูลเบื้องต้น
โครงสร้างข้อมูล Queues
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โครงสร้างข้อมูลแบบ สแตก (stack)
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
บทที่ 3 การโปรแกรมเชิงเส้น (Linear Programming)
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
Stack Sanchai Yeewiyom
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
ใบสำเนางานนำเสนอ:

ลักษณะการทำงานของ Stack กองซ้อน Push Operation Pop Operation

Stack ? โครงสร้างข้อมูลเชิงเส้น (Linear) แบบกองซ้อน ที่โครงสร้างหนึ่ง สามารถเก็บข้อมูลได้หลายค่า การเพิ่มหรือการลบข้อมูล จะเกิดขึ้นที่ปลายทางด้านใด ด้านหนึ่งของข้อมูลเท่านั้น Push Pop Push แสดงภาพแนวนอน แสดงภาพแนวตั้ง Pop

Stack ? ข้อมูลที่ถูกจัดวางก่อนจะถูกเรียกใช้ทีหลัง ตาม ความสัมพันธ์แบบ Last In First Out:: LIFO มีการกระทำ (Operations) ที่จัดการข้อมูลอยู่2 ตัว คือการนำข้อมูลเข้า(Push ) และออก(Pop) Stack มีขนาดจำกัด และไม่จำกัดขึ้นอยู่กับวิธีการสร้าง

ตัวอย่าง การวางและหยิบจาน จากจานที่ตั้งเป็นชั้น การเก็บรถเข็นในห้าง การวางและหยิบจาน จากจานที่ตั้งเป็นชั้น การเก็บรถเข็นในห้าง LIFO ( Last In First Out) ข้อมูลที่ถูกนำเข้าไปใส่ใน Stack ก่อน จะถูกนำออกจาก Stack ที่หลัง

Push(ตัวแปร Stack, ข้อมูล) Stack’s Operations Push(ตัวแปร Stack, ข้อมูล) การแทรก หรือ เพิ่มสมาชิก เข้าไปใน Stack Pop(ตัวแปร Stack, ข้อมูล) การลบ หรือนำสมาชิก ออกจาก Stack การกระทำ Push หรือ Pop แต่ละครั้งจะกระทำกับข้อมูลหรือสมาชิกได้เพียง 1 ตัวเท่านั้น

LIFO ( Last In First Out) Top of Stack Bottom of Stack

Max Size = 8 Top =2 Top =1 Top =0 Push(Stack, “A”) Push(Stack, “B”) Top =2 B A Top =1 A Top =0 Stack Empty

การโปรแกรมแบบรีเคอร์ซีฟ (Recursive Programming)

2.การประมวลผลโปรแกรมแบบ Recursive โปรแกรมเรียกใช้ตัวเอง คล้ายกับการเรียกใช้ฟังก์ชัน เพียงแต่เรียกฟังก์ชันที่มีชื่อตนเองเท่านั้น ทุกๆ ครั้งที่มีการเรียกใช้ตัวเอง จะเก็บข้อมูลไว้ใน Stack ก่อนเสมอ #include <iostream.h> int Factorial( int n ){ int fact; if (n == 0) fact = 1; else fact = n * Factorial (n-1); return fact; } void main(){ int n; cout << "Enter Number : "; cin >> n; cout << "Factorial " <n<< " = "<< Factorial(n);

ตัวอย่างการ Recursive Factorial(0) Factorial(1) Factorial(2) Factorial(3) Factorial(4)

ตัวอย่างการ Recursive Factorial(0) Factorial(1) Factorial(2) Factorial(3) Factorial(4)

Factorial := 3 * factorial(3-1) Y := Factorial(3); Factorial := 3 * factorial(3-1) 3

Factorial := 2 * factorial(2-1) Y := Factorial(2); Factorial := 2 * factorial(2-1) 2 3

Factorial := 1 * factorial(1-1) Y := Factorial(1); Factorial := 1 * factorial(1-1) 1 2 3

Y := Factorial(0); Factorial := 1 1 2 3

Factorial(1) := 1 * factorial(0) Return 1 Factorial := 1*1 2 3

Factorial(2) := 2 * factorial(1) Return 2 Factorial := 1*2 3

Factorial(3) := 3 * factorial(2) Return 3 Factorial := 2*3

Y :=6

1. จงเขียนโปรแกรม Recursive ในการหาเทอมของอนุกรม Fibonacci Sequence จำนวน N เทอม โดยป้อนจำนวนเต็ม N เข้าไป แล้วแสดงผลอนุกรมดังกล่าว T(1) = 0 T(2) = 1 T(N) = T(n-2) + T(n-1) Lab3-1.cpp ตัวอย่าง Output Enter Term of Fibonacci : 10 0 1 1 2 3 5 8 13 21 34

2. จงเขียนโปรแกรม Recursive ในการหาค่าของ Xn เทอม โดยป้อนค่าของ X และจำนวนเต็ม N เข้าไป แล้วแสดงผลค่าผลลัพธ์ดังกล่าว X0 = 1 Xn = X * Xn-1 Lab3-2.cpp ตัวอย่าง Output Enter Number : 2 Enter Power : 5 Power 2 of 5 = 32