Please enable JavaScript.
Coggle requires JavaScript to display documents.
ความรู้เบื้องต้นเกี่ยวโครงสร้างข้อมูล (Meaning of Data Structure)…
ความรู้เบื้องต้นเกี่ยวโครงสร้างข้อมูล (Meaning of Data Structure)
โครงสร้างข้อมูล (Data Structure)
บิท (Bit) คือข้อมูลที่มีขนาดเล็กที่สุดเป็นข้อมูลที่เครื่องคอมพิวเตอร์เข้าใจและใช้งานได้ได้แก่ 0 หรือ1
ไบท์(Byte) หรือ อักขระ (Character) คือ ตัวเลข หรือ ตัวอักษร หรือ สัญลักษณ์พิเศษ จํานวน 1 ตัว
ฟิลด์(Field) หรือ เขตข้อมูล คือ ไบท์หรือ อักขระตั้งแต่ 1 ตัวขึ้นไปรวมกันเป็นฟิลด์เช่น
เลขประจําตัว หรือ ชื่อพนักงาน
เรคคอร์ด (Record) หรือระเบียน คือ ฟิลด์ตั้งแต่ 1 ฟิลด์ขึ้นไปที่มีความสัมพันธ์เกี่ยวข้องกันมา
รวมกัน
ไฟล์(File) หรือ แฟ้มข้อมูล คือ หลายเรคคอร์ดมารวมกัน เช่น ข้อมูลที่อยู่นักเรียนมารวมกัน
ฐานข้อมูล (Database) คือ หลายไฟล์ข้อมูลมารวมกัน เช่น ไฟล์ข้อมูลนักเรียนมารวมกัน
ในงานทะเบียน แล้วรวมกับไฟล์การเงิน
โครงสร้างข้อมูลแบบอาร์เรย์
ใช้เก็บอิลีเมนต์ที่มีชนิดข้อมูลชนิดเดียวกันจํานวนหนึ่งแต่มีลําดับเฉพาะอิลีเมนต์ของอาร์เรย์เข้าถึงโดยใช้เลขจํานวนเต็มระบุตําแหน่งของอิลีเมนต์ที่ต้องการอาร์เรย์อาจมีขนาดจํากัด
เรคคอร์ด (อาจเรียกเป็น ทูเปิ้ล หรือสตรัค) เรคคอร์ดเป็นโครงสร้างข้อมูลชนิดหนึ่งในกลุ่มโครงสร้างข้อมูลแบบง่าย ค่าข้อมูลของมันเป็นค่าซึ่งสามารถใส่ค่าของเรคคอร์ดอื่น โดยปกติเรคคอร์ดมีขนาดคงที่และเรียงลําดับ
แฮช (Hash) หรือ ดิกชันนารีหรือ แมพ เป็นโครงสร้างข้อมูลที่ยืดหยุ่นมากกว่าเรคคอร์ดซึ่งการเก็บข้อมูลจะเป็นแบบคู่ของ ชื่อ-ค่า
ยูเนียน (Union) การนิยามยูเนียน จะระบุจํานวนของชนิดข้อมูลดั้งเดิมที่อาจใช้ใส่อินสแตนท์เช่น "float หรือ long integer" ยูเนียนแตกต่างจากเรคคอร์ด
แท็กยูเนียน (tagged union) (มักเรียกว่า แวเรียน แวเรียนเรคคอร์ด หรือดิสจอยส์ยูเนียน) เป็นโครงสร้างที่บรรจุฟิลด์เพิ่มเติมที่ชี้ชนิดข้อมูลป้จจุบันของมัน เพื่อการขยายชนิดข้อมูลอย่างปลอดภัย
เซต (Set) เป็นโครงสร้างข้อมูลนามธรรมซึ่งสามารถเก็บค่าเฉพาะ โดยไม่ต้องมีลําดับ และไม่มีค่าที่ซ้ำกัน
วัตถุ(Object) เป็นโครงสร้างที่บรรจุฟิลด์ข้อมูลได้เช่นเดียวกับเรคคอร์ด และยังมีโค้ดของโปรแกรมสําหรับทํางานกับข้อมูลนั้นด้วย
โครงสร้างข้อมูลแบบสแตก (Stack)
สแตกเป็นโครงสร้างข้อมูลที่ถูกกล่าวถึงมากโครงสร้างหนึ่งซึ่งมักจะใช้เป็นประโยชน์ในการอินเตอร์รัพต์การกระโดด ไปมาระหว่างโปรแกรมย่อย
สแตกประกอบด้วยส่วนส าคัญ ๆ 2 ส่วน คือ
1.ตัวชี้สแตก หรือ Stack Pointer ซึ่งเป็นตัวควบคุมการน าสมาชิกเข้า หรือออกจากสแตก เป็นตัวใช้บอกว่า สแตกนั้นเต็มหรือยัง
2.ส่วนสมาชิกของสแตก หรือจะเรียกอีกอย่างว่า Stack Element สมาชิกของสแตกนี้จะเป็นข้อมูลชนิดเดียวกัน ทั้งหมด
การสร้างสแตก
ในการแทนโครงสร้างข้อมูลแบบสแตกจะใช้โครงสร้างข้อมูลแบบอาร์เรย์
หรือลิงค์ลิสท์ก็ได้ ทั้งนี้แล้วแต่ ความเหมาะสมในการนำไปใช้ในการทำงาน ถ้าใช้การแทนที่ข้อมูลของสแตกด้วยอาร์เรย์ซึ่งเป็นการจัดสรร เนื้อ
การประยุกต์ใช้งานของสแตก
สแตกเป็นโครงสร้างที่มีประโยชน์มาก ถูกนำไปประยุกต์ใช้ในหลายๆ ด้าน เช่น
การใช้สแตกในกระบวนการเรียกใช้โพรซีเจอร์หรือฟังก์ชัน
การจัดการหน่วยความจำ
การตรวจสอบอักขระสมดุล
โครงสร้างข้อมูลแบบคิว (Queue)
จัดเป็นโครงสร้างข้อมูลแบบรายการเชิงเส้น (Liner Structure) ทีมีคุณลักษณะเฉพาะของตัวเอง โดยมีกฏเกณฑ์ของการเพิ่มข้อมูลเข้าที่ปลายด้านหนึ่งของโครงสร้าง หรือ ตรงส่วนท้ายของคิว
ลักษณะสำคัญของคิว
คือ สิ่งที่เข้าไปในแถวคิว (แถวอันดับ) เป็นอันดับแรกจะได้รับการปฏิบัติหรือถูกกระท าก่อน และ จบงานหรือหลุดกระบวนการออกจากแถวคิวเป็นอันดับแรกเช่นกัน จึงเรียกคุณลักษณะโครงสร้างข้อมูล
การดำเนินการโครงสร้างข้อมูลคิว
การดำเนินการโครงสร้างข้อมูลคิวแบ่งออกเป็น 3 ลักษณะ ได้แก่
การนำข้อมูลเข้าสู่โครงสร้างคิว (Insert Data)
เป็นกระบวนการอ่านข้อมูลจากภายนอกเข้าสู่โครงสร้างข้อมูลคิวทางด้านปลายที่พอยน์เตอร์ R ชี้อยู่เมื่อมีการน าข้อมูลเข้า สู่โครงสร้างคิวเรียบร้อยแล้ว พอยน์เตอร์ R จะเปลี่ยนตำแหน่งชี้ไปยังตำแหน่งที่ว่างตๆแหน่งถัดไป
ขั้นตอนการนำข้อมูลเข้าสู่โครงสร้างคิว มีดังนี้
ถ้าคิวไม่เต็มให้เลื่อนตำแหน่งพอยน์เตอร์ R แล้วนำข้อมูลเข้าสู่คิว
เมื่อมีข้อมูลเข้าสู่คิว ให้ตรวจสอบว่าคิวเต็มหรือไม่
ถ้าคิวเต็มไม่ให้มีการรับข้อมูล ตรวจสอบเงื่อนไขว่า ถ้าเป็นข้อมูลตัวแรกในคิว ให้เปลี่ยนพอยน์เตอร์ F ให้ชี้ค่าแรก
ขั้นตอนการนำข้อมูลออกจากโครงสร้างคิว มีดังนี้
ถ้าคิวไม่ว่างให้นำข้อข้อมูลออกจากคิว พร้อมเลื่อนตำแหน่งพอยน์เตอร์ F
ถ้ามีข้อมูลอยู่เพียงตัวเดียว ให้กำหนดให้พอยน์เตอร์ F และ R เป็นศูนย์ (0)
ตรวจสอบว่าเป็นคิวว่าง (Empty Queues) หรือไม
โครงสร้างข้อมูลคิววงกลม (Circular Queue)
รูปแบบของโครงสร้างคิววงกลม มี 2 ลักษณะ คือ
การดำเนินการเคลื่อนที่แบบทวนเข็มนาฬิกา (Counterclockwise)
การดำเนินการเคลื่อนที่แบบตามเข็มนาฬิกา (Clockwise)
การตรวจสอบค่าของโครงสร้าง
คิววงกลม แก้ไขด้วยวิธีการดังนี้
กำหนดค่าตรรกะ (Boolean)
กำหนดตัวนับ (Counter)
ขั้นตอนการเพิ่มข้อมูลเข้าสู่โครงสร้างคิววงกลม
ตรวจสอบว่าคิวเต็มหรือไม่ ถ้าไม่เต็มให้เพิ่มข้อมูล
ตรวจสอบว่าข้อมูลที่เข้ามาเป็นค่าแรกในคิวหรือไม่ ถ้าใช่ให้พอยน์เตอร์ F เลื่อนต าแหน่งต่อไป
ตรวจสอบว่าพอยน์เตอร์ R อยู่ที่ตำแหน่งสุดท้ายหรือไม่ ถ้าใช่ให้กำหนดให้มาที่ค่าเริ่มต้น ถ้าไม่ใช่ให้เลื่อนตำแหน่งต่อไป
ขั้นตอนการลบข้อมูลออกจากโครงสร้างคิววงกลม
ตรวจสอบว่ามีข้อมูลเพียงค่าเดียวหรือไม่ ถ้าใช่ให้พอยน์เตอร์ F และ R มีค่าเป็น 0
ตรวจสอบว่าพอยน์เตอร์ F อยู่ที่ตำแหน่งท้ายสุดของโครงสร้างหรือไม่ ถ้าใช่ให้พอยน์เตอร์ F ไป
ตรวจสอบว่าโครงสร้างคิวว่าง (Empty Queue) หรือไม่ถ้าไม่ใช่ให้นำข้อมูลออกจากโครงสร้างคิว
การนำข้อมูลออกจากโครงสร้างคิว (Delete Data)
การสร้างข้อมูลโครงสร้างคิว (Queue Creation)
เป็นการจัดเตรียมโครงสร้างไว้สำหรับเก็บข้อมูลที่มีลักษณะการประมวลผลแบบแถวคิว ซึ่งโดยทั่วไปจะเป็นโครงสร้างอาร์เรย์ (Array) มีขั้นตอนดังนี้
การประกาศอาร์เรย์ที่มีขนาดตามโครงสร้างของคิวตามต้องการ
ประกาศตัวชี้
: