วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2552

DTS 05-22-07-2552

สรุป Linked List และ Stack

pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก
เช่น ต้องการนำข้อมูลออกจากสแตก sไปไว้ที่ตัวแปร i
จะได้ i = pop (s)
การนำข้อมูลออกจากสแตก ถ้าสแตกมีสมาชิกเพียง 1
ตัว แล้วนำสมาชิกออกจากสแตก จะเกิดสภาวะสแตก
ว่าง (Stack Empty) คือ ไม่มีสมาชิกอยู่ในสแตกเลย

แต่ถ้าไม่มีสมาชิกในสแตก แล้วทำการ pop สแตก
จะทำให้ เกิดความผิดพลาดที่เรียกว่า Stack Underflow
เพราะฉะนั้นก่อนนำข้อมูลออกจาก

สแตกจะต้องตรวจสอบ ก่อนว่าสแตกว่าง
หรือเปล่า จึงจะนำข้อมูลออกจากสแตกได้

และปรับตัวชี้ตำแหน่งให้ไปชี้ตำแหน่งของ
ข้อมูลที่ต่อจากข้อมูลที่ถูกนำ ออกไป


การลบโหนด
กำหนดค่า plist คือพอยน์เตอร์เริ่มต้น
ppre คือ พอยน์เตอร์โหนด
ploc คือ โหนดพอยน์เตอร์
dataout คือ ข้อมูลที่จัดเก็บในโหนด

การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
จะประกอบไปด้วย 2 ส่วน คือ
1. Head Node จะประกอบไปด้วย 2 ส่วนคือ

top pointer และจำนวนสมาชิกในสแตก
2. Data Node จะประกอบไปด้วย
ข้อมูล (Data) และพอยเตอร์ ที่ชี้ไปยังข้อมูล


Stack (Cont.)
การทำงานของโปรแกรมหลักที่เรียกใช้โปรแกรมย่อย
และในแต่ละโปรแกรมย่อยก็มีการเรียกใช้โปรแกรมย่อย
ต่อไปอีก สแตกจะสามารถเข้ามาช่วยในการทำงาน

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

หลังจากเสร็จสิ้นการทำงานในโปรแกรมย่อยแล้ว
จะทำการ pop ค่าเลขที่คำสั่งออกมาจากสแตก

เพื่อกลับไปทำงานที่คำสั่งต่อจากคำสั่งที่เรียกใช้โปรแกรมย่อย

วันพุธที่ 15 กรกฎาคม พ.ศ. 2552

DTS 04-15-07-2552

Stack

เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียรลิสต์
ลักษณะสำคัญของสแตก คือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา
จากสแตกเป็นลำดับแรกสุด
ในการเพิ่มข้อมูลลงในสแตก จะต้องทำการตรวจสอบว่า
สแตกเต็มหรือไม่ ถ้าไม่เต็มก็สามารถเพิ่มข้อมูลลง
ไปในสแตกได้
แต่ถ้าไม่มีสมาชิกในสแตก แล้วทำการ pop สแตก
จะทำให้เกิดความผิดพลาดที่เรียกว่า Stack Underflow

การแทนที่ข้อมูลของสแตก มีอยู่ 2 วิธี
1 การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2 การแทนที่ข้อมูลของสแตกแบบอะเรย์

Stack Top
เป็นการคักลอกข้อมูลที่อยู่บนสุดของสแตก
โดยไม่มีการลบข้อมูลออกจากสแตก

Empty Stack
เป็นการตรวจสอบการว่างของสแตก
เพื่อไม่ให้เกิดการผิดพลาดในการนำข้อมูล
ออกจากสแตกที่เรียกว่า Stack Underflow

Full Stack
เป็นการตรวจสอบว่าสแตกเต็มหรือไม่
เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูล
สแตกที่เรียกว่า Stack Overflow

การประยุกต์ใช้สแตก
การประยุกต์ใช้สแตกจะใช้ในงานด้านปฏิบัติการของเครื่องคอมพิวเตอร์
ที่ขั้นตอนการทำงานต้องการเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุด

การทำงานของโปรแกรมที่มีโปรแกรมย่อย
การทำงานของโปรแกรมหลักที่เรียกใช้โปรแกรมย่อยและใน
แต่ละโปรแกรมย่อยก็มีการเรียกใช้โปรแกรมย่อยต่อไป
อีกสแตกจะสามารถเข้ามาช่วยในการทำงาน

วันเสาร์ที่ 11 กรกฎาคม พ.ศ. 2552

DTS 03-01-07-2552

สรุปเนื้อหาบทเรียน
เรื่อง Pointer,Set and String

Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่(Address)
ของตัวแปรที่อยู่ในหน่วยความจำ

การประกาศตัวแปร Pointer
type variable-name;
type คือชนิดของตัวแปรที่จะประกาศเช่น int,float,char
* คือเครื่องหมายที่แสดงให้รู้ว่าตัวแปรหลังดอกจันคือตัวแปร Pointervariable-name
คือชื่อตัวแปรที่จะสร้างขึ้น ทั้งนี้จะต้องไม่เป็นคำสงวนของภาษาซี

ตัวอย่าง
int *y,x=10;
y=&;
หมายความว่า ตัวแปร y ซึ่งประกาศเป็นตัวแปรพอยน์เตอร์
จะเก็บค่า 1000 ซึ่งเป็นตำแหน่งที่อยู่

โครงสร้างข้อมูลแบบ Set
เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กันในภาษาซี
จะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับในภาษาปาสคาล
แต่สามารถใช้หลักของการดำเนินงานแบบเซ็ตมาใช้ได้

โครงสร้างข้อมูล String
string หมายถึงอักขระที่มีความยาวมากกว่า 1 ตัวต่อกันเป็นข้อความ
โดยข้อมูลชนิดข้อความต้องเขียนอยู่ภายในเครื่องหมาย " " (Double quote)
และเป็นข้อมูลที่ประกอบด้วยตัวเลขหรือเครื่องหมายต่างๆที่เขียนติดต่อกัน