Queue
Queue เป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือลิเนียร์ลิสต์ซึ่งการเพิ่มข้อมูลจะทำการที่ปลายข้างหนึ่งเรียกว่าส่วนท้าย (rear) และการนำข้อมูลออกจะกระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้าหรือ (front)ลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO (First In First Out)
- การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงเรียกว่า Queue Front แต่จะไม่ทำการเอาข้อมูลออกจากคิว
- การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะเรียกว่า Queue Rear แต่ไม่ทำการเพิ่มข้อมูลเข้าไปในคิวการแทนที่ข้อมูลของ
Queueสามารถทำได้มี 2 วิธี คือ
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของคิวแบบอะเรย์
การดำเนินการเกี่ยวกับคิว ได้แก่
1. Create Queue = การจัดสรรหน่วยความจำให้แก่ Head Node และค่า Pointer ทั้งสองตัวมีค่าเป็น null และค่าสมาชิกเป็น 0
2. Enqueue = การเพิ่มข้อมูลเข้าไปในคิว
3. Dequeue = การนำข้อมูลออกจากคิว
4. Queue Front = การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดง
5. Queue Rear = การนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง
6. Empty = การตรวจสอบว่าคิวว่างหรือไม่
7. Full Queue = การตรวจสอบว่าคิวเต็มหรือไม่
8. Queue Count = การนับจำนวนสมาชิกที่อยู่ในคิว
9. Destroy Queue = การลบข้อมูลทั้งหมดที่อยู่ในคิว
- การนำข้อมูลเข้าสู่คิว จะไม่นำเข้าในขณะที่คิวเต็มหรือไม่มีที่ว่างถ้าพยายามนำข้อมูลเข้าจะเกิดการผิดพลาดที่เรียกว่า overflow
- การนำข้อมูลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างได้ถ้าพยายามจะเอาออกจะเกิดการผิดพลาดที่เรียกว่า underflow
- จุดเด่นของคิวคิวสามารถจัดการการเข้า-ออกของข้อมูล ใช้เก็บข้อมูลที่ต้องการจัดเรียงเป็นระบบ โดยพิจารณาข้อมูลตามลำดับ ในทำนอง ใครถึงก่อนมีสิทธิ์ได้ใช้ก่อน จึงใช้ในการเรียงลำดับในการแบ่งปันทรัพยากรที่มีอยู่อย่างจำกัดในการทำงาน เช่น การรอคิวการทำงานของเครื่องพิมพ์ในสำนักงาน เป็นต้น
วันอังคารที่ 8 กันยายน พ.ศ. 2552
DTS 06-29-07-2552
สรุป stack (ต่อ)
การแทนที่ข้อมูลของสแตกแบบอะเรย์คือการนำเอาอาร์เรย์เข้ามาใช้งานในการกำหนดโครงสร้างซึ่งเป็นลักษณะเฉพาะตัวของอาร์เรย์เป็นโครงสร้างที่สามารถกำหนดจองพื้นที่บนหน่วยความจำได้แน่นอนและสามารถเก็บข้อมูลที่เป็นชนิดเดียวกันซึ่งจะเอาคุณสมบัตินี้มาใช้ในการกำหนดโครงสร้างและจัดเก็บข้อมูลในลักษณะสแตก--โครงสร้างอาร์เรย์นั้นจะมีการจองพื้นที่ที่แน่นอน (stack) จึงจำเป็นต้องมีการกำหนดขนาดพื้นที่จัดเก็บข้อมูลสูงสุดให้เหมาะสมเมื่อมีการนำ้เอาข้อมูลเข้ามาหลักการดำเนินการสำหรับแปลง infix เป็น postfix1.พิจารณานิพจน์ infix หากเป็น operand ให้นำออกไปที่ผลลัพธ์2.พิจารณานิพจน์ infix หากเป็น operator ให้นำมาเปรียบเทียบความสำคัญ หากสแตกว่างไม่มีตัวดำเนินการให้ push ลงสแตกถ้ามีตัวดำเนินการอยู่ให้เปรียบเที่ยบความสำคัญ ถ้าตัวดำเนินการที่เข้าไปใหม่มีความสำคัญน้อยกว่าให้ pop ตัวดำเนินการก่อนหน้าไปไว้ในผลลัพธ์แต่ถ้ามีความสำคัญมากกว่าก็ให้วางต่อไว้ในสแตกสำหรับเครื่องหมาย +-*/ เรียกว่า operatorสำหรับตัวอักษร ABCD เรียกว่า operand
การแทนที่ข้อมูลของสแตกแบบอะเรย์คือการนำเอาอาร์เรย์เข้ามาใช้งานในการกำหนดโครงสร้างซึ่งเป็นลักษณะเฉพาะตัวของอาร์เรย์เป็นโครงสร้างที่สามารถกำหนดจองพื้นที่บนหน่วยความจำได้แน่นอนและสามารถเก็บข้อมูลที่เป็นชนิดเดียวกันซึ่งจะเอาคุณสมบัตินี้มาใช้ในการกำหนดโครงสร้างและจัดเก็บข้อมูลในลักษณะสแตก--โครงสร้างอาร์เรย์นั้นจะมีการจองพื้นที่ที่แน่นอน (stack) จึงจำเป็นต้องมีการกำหนดขนาดพื้นที่จัดเก็บข้อมูลสูงสุดให้เหมาะสมเมื่อมีการนำ้เอาข้อมูลเข้ามาหลักการดำเนินการสำหรับแปลง infix เป็น postfix1.พิจารณานิพจน์ infix หากเป็น operand ให้นำออกไปที่ผลลัพธ์2.พิจารณานิพจน์ infix หากเป็น operator ให้นำมาเปรียบเทียบความสำคัญ หากสแตกว่างไม่มีตัวดำเนินการให้ push ลงสแตกถ้ามีตัวดำเนินการอยู่ให้เปรียบเที่ยบความสำคัญ ถ้าตัวดำเนินการที่เข้าไปใหม่มีความสำคัญน้อยกว่าให้ pop ตัวดำเนินการก่อนหน้าไปไว้ในผลลัพธ์แต่ถ้ามีความสำคัญมากกว่าก็ให้วางต่อไว้ในสแตกสำหรับเครื่องหมาย +-*/ เรียกว่า operatorสำหรับตัวอักษร ABCD เรียกว่า operand
วันอังคารที่ 28 กรกฎาคม พ.ศ. 2552
05-22-07-2552
สรุปบทเรียน Linked List,Stack
สแตค (Stack)สแตคเป็นโครงสร้างข้อมูลที่มีลักษณะแบบลำดับ (sequential) คือการกระทำกับข้อมูลจะกระทำที่ปลายข้างเดียวกันที่ส่วนปลายสุดของสแตค การกระทำกับข้อมูลของสแตคประกอบไปด้วยการนำเข้าข้อมูลเข้า (PUSH) ที่ส่วนบนสุดของสแตค และการนำข้อมูลออก (POP) ที่ส่วนบนสุดของสแตคเช่นกัน ในการจะ Push ข้อมูลเข้าก็ต้องตรวจสอบด้วยว่าข้อมูลในสแตคเต็มหรือไม่ หากสแตคเต็มก็จะไม่สามารถ Push หรือนำข้อมูลเข้าได้ เช่นเดียวกับการ Pop ข้อมูลออกก็ต้องตรวจสอบด้วยว่ามีข้อมูลอยู่ในสแตคหรือไม่ หากไม่มีข้อมูลอยู่ในสแตคหรือสแตคว่าง (empty stack) ก็ไม่สามารถ pop ได้การนำข้อมูลเข้า-ออก จากสแตค (push , pop) จะมีลักษณะแบบเข้าหลัง ออกก่อน (LIFO : Last In , First Out) คือ ข้อมูลที่เข้าไปในสแตคลำดับหลังสุด จะถูกนำข้อมูลออกจากสแตคเป็นลำดับแรก
การแทนที่ข้อมูลของสแตก มีอยู่ 2 วิธี
1 การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2 การแทนที่ข้อมูลของสแตกแบบอะเรย์
Stack Topเป็นการคักลอกข้อมูลที่อยู่บนสุดของสแตกโดยไม่มีการลบข้อมูลออกจากสแตก
Empty Stackเป็นการตรวจสอบการว่างของสแตกเพื่อไม่ให้เกิดการผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่า Stack UnderflowFull
Stackเป็นการตรวจสอบว่าสแตกเต็มหรือไม่เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลสแตกที่เรียกว่า Stack Overflow
การประยุกต์ใช้สแตกการประยุกต์ใช้สแตกจะใช้ในงานด้านปฏิบัติการของเครื่องคอมพิวเตอร์ที่ขั้นตอนการทำงานต้องการเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุดการทำงานของโปรแกรมที่มีโปรแกรมย่อยการทำงานของโปรแกรมหลักที่เรียกใช้โปรแกรมย่อยและในแต่ละโปรแกรมย่อยก็มีการเรียกใช้โปรแกรมย่อยต่อไปอีกสแตกจะสามารถเข้ามาช่วยในการทำงาน
ตัวอย่างของสแตก คือ "หลอดด้าย" หลอดด้ายที่เป็นม้วนจะมีการพันด้ายเส้นแรกจากด้านใน แล้วเวลาใช้จะต้องใช้เส้นที่อยู่หน้าสุดคือเส้นที่ม้วนเข้าไปที่หลังออกมาใช้ก่อน
สแตค (Stack)สแตคเป็นโครงสร้างข้อมูลที่มีลักษณะแบบลำดับ (sequential) คือการกระทำกับข้อมูลจะกระทำที่ปลายข้างเดียวกันที่ส่วนปลายสุดของสแตค การกระทำกับข้อมูลของสแตคประกอบไปด้วยการนำเข้าข้อมูลเข้า (PUSH) ที่ส่วนบนสุดของสแตค และการนำข้อมูลออก (POP) ที่ส่วนบนสุดของสแตคเช่นกัน ในการจะ Push ข้อมูลเข้าก็ต้องตรวจสอบด้วยว่าข้อมูลในสแตคเต็มหรือไม่ หากสแตคเต็มก็จะไม่สามารถ Push หรือนำข้อมูลเข้าได้ เช่นเดียวกับการ Pop ข้อมูลออกก็ต้องตรวจสอบด้วยว่ามีข้อมูลอยู่ในสแตคหรือไม่ หากไม่มีข้อมูลอยู่ในสแตคหรือสแตคว่าง (empty stack) ก็ไม่สามารถ pop ได้การนำข้อมูลเข้า-ออก จากสแตค (push , pop) จะมีลักษณะแบบเข้าหลัง ออกก่อน (LIFO : Last In , First Out) คือ ข้อมูลที่เข้าไปในสแตคลำดับหลังสุด จะถูกนำข้อมูลออกจากสแตคเป็นลำดับแรก
การแทนที่ข้อมูลของสแตก มีอยู่ 2 วิธี
1 การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2 การแทนที่ข้อมูลของสแตกแบบอะเรย์
Stack Topเป็นการคักลอกข้อมูลที่อยู่บนสุดของสแตกโดยไม่มีการลบข้อมูลออกจากสแตก
Empty Stackเป็นการตรวจสอบการว่างของสแตกเพื่อไม่ให้เกิดการผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่า Stack UnderflowFull
Stackเป็นการตรวจสอบว่าสแตกเต็มหรือไม่เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลสแตกที่เรียกว่า Stack Overflow
การประยุกต์ใช้สแตกการประยุกต์ใช้สแตกจะใช้ในงานด้านปฏิบัติการของเครื่องคอมพิวเตอร์ที่ขั้นตอนการทำงานต้องการเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุดการทำงานของโปรแกรมที่มีโปรแกรมย่อยการทำงานของโปรแกรมหลักที่เรียกใช้โปรแกรมย่อยและในแต่ละโปรแกรมย่อยก็มีการเรียกใช้โปรแกรมย่อยต่อไปอีกสแตกจะสามารถเข้ามาช่วยในการทำงาน
ตัวอย่างของสแตก คือ "หลอดด้าย" หลอดด้ายที่เป็นม้วนจะมีการพันด้ายเส้นแรกจากด้านใน แล้วเวลาใช้จะต้องใช้เส้นที่อยู่หน้าสุดคือเส้นที่ม้วนเข้าไปที่หลังออกมาใช้ก่อน
04-15-07-2552
Linked List
ลิงค์ลิสต์เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกันไปตามลำดับ
ซึ่งอาจอยู่ในลักษณะแบบเชิงเส้นตรง (linear) หรือ ไม่เป็นเส้นตรง (nonlinear) ก็ได้
ซึ่งในลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด (node)
ในหนึ่งโหนดจะประกอบด้วยส่วนของข้อมูลที่ต้องการจัดเก็บ
เรียกว่าส่วน Info และส่วนที่เป็นพอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link)
หรือชี้ไปยังโหนดอื่นๆที่อยู่ในลิสต์ หากไม่มีโหนดที่อยู่ถัดไป
ส่วนที่เป็นพอยน์เตอร์หรือ Link จะเก็บค่า NULL หรือสัญลักษณ์ ^
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ1. Head Structure จะประกอบไปด้วย 3 ส่วน
ได้แก่ จำนวนโหนดในลิสต์ (Count)
พอยเตอร์ที่ชี้ไปยัง โหนดที่เข้าถึง (Pos)
และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล แรกของลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วยข้อมูล(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป
ลิงค์ลิสต์เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกันไปตามลำดับ
ซึ่งอาจอยู่ในลักษณะแบบเชิงเส้นตรง (linear) หรือ ไม่เป็นเส้นตรง (nonlinear) ก็ได้
ซึ่งในลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด (node)
ในหนึ่งโหนดจะประกอบด้วยส่วนของข้อมูลที่ต้องการจัดเก็บ
เรียกว่าส่วน Info และส่วนที่เป็นพอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link)
หรือชี้ไปยังโหนดอื่นๆที่อยู่ในลิสต์ หากไม่มีโหนดที่อยู่ถัดไป
ส่วนที่เป็นพอยน์เตอร์หรือ Link จะเก็บค่า NULL หรือสัญลักษณ์ ^
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ1. Head Structure จะประกอบไปด้วย 3 ส่วน
ได้แก่ จำนวนโหนดในลิสต์ (Count)
พอยเตอร์ที่ชี้ไปยัง โหนดที่เข้าถึง (Pos)
และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล แรกของลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วยข้อมูล(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป
วันอังคารที่ 14 กรกฎาคม พ.ศ. 2552
dts01-07-52
pointer
เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่ (Address) ของตัวแปรที่อยู่ในหน่วยความจำ
การประกาศตัวแปรชนิดของตัวแปรพอยน์เตอร์
รูปแบบ
type *variable-name
type หมายถึง ชนิดของตัวแปร
* หมายถึง เป็นเครื่องหมายที่แสดงว่า ตัวแปรที่ตามหลังเครื่องหมายนี้เป็นตัวแปรพอยน์เตอร์
variable-name เป็นชื่อของตัวแปรที่ต้องการประกาศว่าเป็นชนิดของพอยน์เตอร์
เครื่องหมายที่ใช้ทำงานกับตัวแปรพอยน์เตอร์
1. เครื่องหมาย & เป็นเครื่องมายที่ใช้เมื่อต้องการให้เอาค่าตำแหน่งที่อยู่ชองตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้
2. เครื่องหมาย * มีการใช้งาน 2 ลักษณะคือ
- ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์ ว่าเป็นตัวแปรพอยน์เตอร์
- ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำค่าที
อยู่ในตำแหน่งทีตัวแปรพอยน์เตอร์นั้นชี้อยู่ออกมาแสดง
การใช้ตัวแปรพอยน์เตอร์กับอะเรย์
ตัวแปรพอยน์เตอร์จะใช้อ้างถึงค่าที่เก็บไว้ในตัวแปรชุดได้ ดังนี้
char str[80],*pl;
pl=str;
บรรทัดที่1 เป็นการประกาศว่า str เป็นตัวแปรชุด ชนิด charater 1 มิติ มีขนาดสมาชิก 80 สมาชิกและ pl เป็นตัวพอยน์เตอร์
บรรทัดที่2 เป้นการอ้างอิงถึงข้อมูลที่เก็บในตัวแปรชุด str โดยการนำตำแหน่งที่อยู่ของตัวแปร str[0] ซึ่งเป็นสมาชิกตัวแรกไปเก็บไว้ใน ตัวแปรพอยน์เตอร์ pl
วันอังคารที่ 30 มิถุนายน พ.ศ. 2552
การบ้าน structure
การบ้าน structure
struct speccom{
char mainboard[50];
char power_supply[20];
char sound_card[30];
char ram[20];
char harddisk[20];
char VGA[30];
char monitor[20];
float price;
}computer;
วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552
DTS 02-24-06-2552
Array (อะเรย์)
อะเรย์เป็นโครงสร้างข้อมูล มีลักษณะคล้ายเซตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจำนวนคงที่ มีข้อมูลเป็นเเบบเดียวกัน สมาชิกแต่ละตัวในเนื้อที่จัดเก็บมีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลัก
การกำหนดอะเรย์จะต้องกำหนดชื่ออะเรย์ พร้อม subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้มากกว่า 1 จำนวน
ข้อกำหนดของการกำหนดค่าต่ำสุดและค่าสูงสุดของ subscript คือ
- ค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
- ค่าต่ำสุด เรียกว่า ขอบเขตล่าง
- ค่าสูงสุด เรียกว่า ขอบบน
การจัดเก็บอะเรย์ในหน่วยความจำหลักจะพิจารณาตามประเภทของอะเรย์ในมิติต่างๆดังนี้
- อะเรย์ 1 มิติ
- อะเรย์หลายมิติ
Structure (สตัคเจอร์)
คือ โครงสร้างที่มีสมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้
การประกาศสมาชิกแต่ละตัวของ structure จะเป็นตัวแปรธรรมดา พอยน์เตอร์ อะเรย์หรือ structure ตัวอื่นก็ได้ โดยชื่อของสมาชิกแต่ละตัวต้องแตกต่างกัน
การอ้างถึงตัวแปรที่อยู่ในตัวแปรชนิดโครงสร้าง สามารถอ้างถึงตัวแปรที่อยู่ในตัวแปรชนิดโครงสร้างได้
อะเรย์เป็นโครงสร้างข้อมูล มีลักษณะคล้ายเซตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจำนวนคงที่ มีข้อมูลเป็นเเบบเดียวกัน สมาชิกแต่ละตัวในเนื้อที่จัดเก็บมีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลัก
การกำหนดอะเรย์จะต้องกำหนดชื่ออะเรย์ พร้อม subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้มากกว่า 1 จำนวน
ข้อกำหนดของการกำหนดค่าต่ำสุดและค่าสูงสุดของ subscript คือ
- ค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
- ค่าต่ำสุด เรียกว่า ขอบเขตล่าง
- ค่าสูงสุด เรียกว่า ขอบบน
การจัดเก็บอะเรย์ในหน่วยความจำหลักจะพิจารณาตามประเภทของอะเรย์ในมิติต่างๆดังนี้
- อะเรย์ 1 มิติ
- อะเรย์หลายมิติ
Structure (สตัคเจอร์)
คือ โครงสร้างที่มีสมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้
การประกาศสมาชิกแต่ละตัวของ structure จะเป็นตัวแปรธรรมดา พอยน์เตอร์ อะเรย์หรือ structure ตัวอื่นก็ได้ โดยชื่อของสมาชิกแต่ละตัวต้องแตกต่างกัน
การอ้างถึงตัวแปรที่อยู่ในตัวแปรชนิดโครงสร้าง สามารถอ้างถึงตัวแปรที่อยู่ในตัวแปรชนิดโครงสร้างได้
วันศุกร์ที่ 26 มิถุนายน พ.ศ. 2552
ประวัติ

น.ส. รพีพร เอี่ยมเที่ยง (อิ๋ว)
ที่อยู่ปัจจุบัน : 14/53 ม.1 ซ.โรงน้ำแข็งสหกรณ์11 ต.บางกระสอ อ.เมือง ถ.สนามบินน้ำ จ.นนทบุรี 11000
เกิดวันที่ : 26 กรกฏาคม 2532
การศึกษาปัจจุบัน : มหาวิทยาลัยราชภัฏสวนดุสิต
ระดับปริญญาตรี คณะวิทยการจัดการ หลักสูตร บริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)
ระดับปริญญาตรี คณะวิทยการจัดการ หลักสูตร บริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)
จบมาจาก : โรงเรียนศรีบุณยานนท์ จังหวัดนนทบุรี
เกรดเฉลีย : 2.98 สาย ศิลป์คำนวณ(อังกฤษ-คณิตศาสตร์)
งานอดิเรก : อ่านหนังสือ,เพลง
สมัครสมาชิก:
บทความ (Atom)


