(อาจารย์สุธาสินี) คราวนี้นะคะ ก่อนที่เราจะขึ้นเรื่องใหม่ เดี๋ยวครูจะทวนของนะคะ ที่เราเรียนผ่านกันมาจะมี 2 เรื่องนะคะ stack กับ qeue จะมีลักษณะจัดเก็บข้อมูลคล้าย ๆ กัน ถ้าเราเข้าใจ stack เราก็น่าจะเข้าใจ queue นะคะ มันจะมองในมุมตรงกันข้ามกัน คราวนี้ ถ้าเราดูนะคะ ว่า Stack เป็นอย่างไร ตามหัวข้อที่ครูลิสต์มาให้ queue ตามที่เราเปรียบเทียบกัน มีความแตกต่างกันอยู่นะ แต่เราต้องจับประเด็นให้ได้ ว่าอะไรที่มันหัวข้อเดียวกัน แล้วความต่างของแต่ละตัวมันเป็นอย่างไร เราเริ่มต้นที่ stack นะคะ ถ้าเราพูดถึง Stack ลักษณะของการจัดเก็บข้อมูล ก็คือเข้าก่อนออกทีหลัง เข้าก่อนออกทีหลังนะคะ ถ้าเราอยากจะนึกเป็นภาพนะ ว่า เอ๊ะ ลักษณะของการเข้าก่อนออกทีหลังเป็นอย่างไร ให้ทุกคนนึกถึงหลอดใส่ CD ข้อมูลที่อยู่ใต้น่ะ อยู่อันแรกสุดเลย จะอยู่ด้านล่างใช่ไหมคะ ข้อมูลที่ถูกเอาเข้าไปเก็บในหลอดซีดีอันสุดท้ายน่ะ มันจะอยู่ด้านบนสุด เวลาเราดึงออกมาใช้ เราก็หยิบข้างบนน่ะ ดึงออกมาใช้ทีละตัว เพราะฉะนั้น ตัวที่เก็บล่าสุดจะเอาออกมาใช้งานก่อนนะคะ ก็จะเข้า Concept ของ Stack ก็คือเข้าก่อนออกทีหลัง หรือชามก๋วยเตี๋ยวเหมือนกัน เขาล้างเสร็จ เขาก็มาตั้งชั้นขึ้นมาใช่ไหม เวลาเรามาซื้อเขาก็จะหยิบออกมา หยิบออกมานะคะ แล้วคำสั่งที่เราใช้ใน Stack มีอะไรบ้าง เรามีคำสั่งอยู่แค่ 2 ตัว ที่ใช้ใน stack คือ push กับ pop Push คือ ใส่เข้าไป ถูกไหม เรา Push คือ ใส่เข้าไปนะคะ ส่วน Pop ก็คือดึงออกมานะ เรา pop ก็คือดึงข้อมูลออกมาจาก Stack นะคะ เวลาเราจัดเก็บข้อมูลใน Stack ให้นึกถึง List นะคะ ให้นึกถึง List ให้นึกถงเป็นตารางนะ ให้นึกถึงลักษณที่เป็นลักษณะที่เป็นตารางนะคะ Push ก็คือค่อย ๆ ใส่ช้อมูลเข้าไปทีละช่อง ทีละช่อง แล้วเวลา pop ก็คือข้อมูลไหนที่เราใส่ล่าสุดน่ะ เมื่อเราสั่ง Pop มันจะถูกเอาออกมาทำงานก่อน แล้วตัวกำกับหรือตัวชี้ว่าข้อมูลล่าสุดที่อยู่ใน Stack มันอยู่ตรงไหน ใช่ไหมคะ Stack มันมีทางเข้าทางออกเพียงแค่ 1 ทางเท่านั้น เพราะฉะนั้น มันจะมีตัว pop นะคะ ตัว pop นี่เป็นตัวบอกว่าข้อมูลล่าสุดที่อยู่ใน Stack มันอยู่ใน Index ที่เท่าไหร่ เพราะฉะนั้น Top จะเป็นตัวบอกตำแหน่งว่าข้อมูลล่าสุดที่อยู่ในตำแหน่งนี่ มันอยู่ตำแหน่งที่ Index ที่เท่าไหร่ ถ้าเราวาดเป็นตาราง 1 แถว หลายคอลัมน์ใช่ไหมคะ Index ก็คือช่องแรก เราจะหมายเลขช่อง คือ 0 1 2 3 ไล่ไปเรื่อย ๆ เพราะฉะนั้น หมายเลข Index นั่นล่ะ คือตัว Top ที่บอกว่าตัวล่าสุดมันอยู่ช่องไหนนะคะ ถ้า stack ว่าง หมายถึงอะไร เราไม่มีข้อมูลอยู่ใน Stack เลย เพราะฉะนั้น ค่า Top จะเป็นเท่ากับ -1 คือ ไม่ได้บอกเลยว่าอยู่หมายเลขช่องที่เท่าไรเลยนะคะ แต่จะเริ่มต้นที่ 0 นะคะ แต่เราไม่ได้อยู่ที ่ช่องไหนเลย Top เราเท่า-1 นะคะ แล้วมาดูอีก 1 ตัว คือ queue แล้วอันนี้จะใกล้ตัวเรามากขึ้น เหมือนกับที่เราไปต่อคิวซื้อข้าว ไปต่อคิวทำกิจกรรมต่าง ๆ queue เข้าก่อน ก็ต้องออกก่อน เพราะฉะนั้น queue จะมีทางเข้าออกอยู่ 2 ทางนะคะ ออกข้างหน้า เข้าข้างหลังนะคะ queue มีทางเข้าทางออก 2 ทาง เข้าข้างหลังออกข้างหน้าใช่ไหม คนมาก่อน ก็ต้องออกข้างหน้า เวลาเข้า ก็คือเข้าข้างหลังนะคะ เหมือนเราไปต่อคิวน่ะ มันมีทางเข้าทางออกกันคนละทาง คำสั่งที่ใช้ใน queue มีอยู่ 2 ตัวเหมือนกัน เข้ากับเอาเข้ากับเอาออกเหมือนกันนะคะ เราจะใช้คำสั่ง Enqeue Enqeue Enter คิวนะคะ ส่วน Deque ก็คือเอาออก deqeue ก็คือเอาข้อมูลออก เห็นไหมคะ มันก็จะตรงกับ Push กับ Pop queue ก็คือ Enqueue กับ dequeue แล้วตัวกำกับข้อมูลที่อยู่ใน qeue เราใช้ค่าอะไรเป็นตัวกำกับ queue เราก็มองเป็นลิสต์เหมือนกัน เป็นช่อง ๆ หมายเลขช่อง เราเริ่มต้นหมายเลขช่องแรกก็คือ 0 ตัวกำกับจะมี 2 ตัวนะคะ ก็คือ front กับ rear front คือ ข้างหน้า rear คือข้างหลัง หรือ f กับ r คือ F กับFront จะเป็นตัวบอกข้อมูลว่าตัวไหนที่จะถูกเอาออก เพราะมันเอาออกข้างหน้านะคะ จะชี้อยู่ด้านหน้า เป็นตัวบอกว่า front กำกับอยู่ที่ช่องไหน ค่าข้อมูลนั้นจะถูกเอาออก ส่วน rear จะเป็นตัวกำกับอยู่ที่ทางเข้านะคะ rear จะบอกตำแหน่งล่าสุดของข้อมูล ว่าข้อมูลตัวที่เข้าล่าสุดใน queue อยู่ที่ตำแหน่งไหน ก็ระบุค่า index ก็คือหมายเลขช่องที่ค่าข้อมูลนั้นอยู่คิวว่าง คิวว่าง แสดงว่ามันว่างนะ queue ว่าง คือ ไม่มีข้อมูลอยู่ใน queue เลย front กับ rear จะมีค่าเป็น -1 นะคะ front กับ rear เป็น -1 โอเค อันนี้ครูทบทวนให้นะ สรุปมาให้ว่า Stack กับ queue มันมีลักษณะเป็นอย่างไร คราวนี้ก่อนที่จะขึ้นเรื่องใหม่ ครูมีแบบฝึกหัดลองทำดูว่าเข้าใจหรือเปล่า ครูจะค้างหน้านี้เอาไว้ให้นะคะ แจกคนละชุดนะคะ หรือสามารถเปิดในสมุดได้นะคะ คราวที่แล้วน่ะ ที่เราทำไปนะ ในเรื่องของ Queue นะคะ เราก็ไปทบทวน เปิดไปทบทวนได้ ก่อนจะขึ้นเรื่องใหม่ ลองดูนะคะ ว่าเรายังจำได้ไหม นี่ front Stack กับ Queue ดูนะคะ ครูมีอยู่ทั้งหมด 5 ข้อด้วยกัน ทำลงในกระดาษที่ครูแจกเลย เขียนลงไปในนี้เลยนะคะ ข้อ 1 กับข้อ 2 ให้เขียนอธิบายนะคะ ว่าลักษณะของ Stack เป็นอย่างไร ลักษณะของ Queue เป็นอย่างไร คำสั่ง Push 5 หมายถึงอะไร ครูระบุไว้ให้แล้วนี่ Push คือการทำอะไร เรา Push ข้อมูลอะไรลงไป ก็เขียนอธิบาย คำสั่งนี้ทำอะไร คำสั่ง Pop ทำอะไร ถัดมา ก็จะมากำหนดค่า Top ครูมี Stack ให้ แล้วเมื่อเราใช้คำสั่ง Push แล้วนี่ ค่า Top จะมีค่าเป็นอะไร หลังจากใช้คำสั่ง Pop แล้วค่า Top จะเป็นอย่างไรนะคะ Queue ก็เหมือนกัน เริ่มต้น เขียนชื่อลงในกระดาษแผ่นแรกนะคะ (อาจารย์สุธาสินี) คราวนี้มาดูพร้อมกันนะคะ เห็น... เดี๋ยวครูซูมนิดหนึ่ง มาดูพร้อมกัน ตัวนี้คือ Stack นะ โจทย์ตัวนี้ คือ stack นะคะ Stack คือ เข้าข้างหลัง ออกข้างหลังใช่ไหมคะ Stack นะ เข้าข้างหลัง ออกข้างหลัง ก็คือทางเข้าทางออกมันอยู่ด้านหลังนะคะ คำสั่ง ตัวแรก ดู ครูสั่งอะไรคะ Push คือ ใส่ ครู Push อะไรคะ ครู Push เลข 3 คำสั่ง คือ ใส่ข้อมูลเลข 3 เพราะฉะนั้น ครูใส่ตรงไหน ใส่ข้างหลัง เห็นไหมคะ ครูใส่เลข 3 เห็นไหมคะ ครูใส่เลข 3 ลงมา มันมีที่ว่างตรงไหนคะ ครูหาทีว่างใส่นะ นี่ ครูเจอช่องนี้ว่างพอดีเลย เพราะฉะนั้น เลข 3 ครูก็อยู่ที่ช่องนี้นะคะ เลข 3 นี่ ครูมาอยู่ที่ช่องสุดท้าย เพราะมันมีช่องใส่อยู่ช่องเดียวน่ะ ข้างหน้ามันเต็มหมดแล้ว แล้วค่า Top จะเป็นอะไ ร ค่า Top เป็นอะไร เราก็ต้องดูสิ ว่าแล้วหมายเลขช่องนี้มันอยู่ช่องหมายเลขอะไร เราก็ต้องเริ่มเขียนจากช่องแรก ก็คือ หมายเลข 0 หมายเลข 2 หมายเลข 3 หมายเลข 4 ถูกไหมคะ เพราะฉะนั้นแล้วนี่ ข้อมูลของครูอยู่ช่องหมายเลขอะไร หมายเลข 4 เพราะฉะนั้น ค่า Top จึงมีค่าเท่ากับ 4 เห็นไหมคะ มันตรงกันนะ ข้อมูลครูอยู่ตรงนี้ แล้วช่องนี้ครูมีหมายเลขช่อง คือ 4 ครู Top ครูเลยมีค่าเท่ากับ 4 คำสั่ง Push นะคะ เดี๋ยวเรามาดูอีก 1 ตัว ดูสิคะ Push เหมือนกัน เห็นไหมคะ เจอ Push เหมือนกัน แสดงว่าใส่ข้อมูลใช่ไหม Push คือ ใส่ข้อมูล ใส่ข้างไหน ใส่ข้างหลัง เราก็ใส่ลงมานะคะ คือ ใส่หมายเลข 10 พอครูใส่หมายเลข 10 เห็นไหม มันมีที่ว่าง ถูกไหมคะ มันค่อย ๆ ไหลลงมา ไหลลงมานะคะ มาช่องนี้นะคะ ก็เลยมาใส่ที่ช่องหลังเลข 3 แล้วหมายเลขช่องคืออะไร เราก็เขียนเหมือนเดิม 0 1 2 เพราะฉะนั้น ค่า Top เลยมีค่าเท่ากับ 2 เห็นไหมคะ เพราะข้อมูลของเรานี่อยู่ช่องหมายเลข 2 โอเค ถัดมา เราเจอคำสั่งใหม่แล้ว คำสั่ง Pop Pop คือ เอาข้างหลังออก เอาข้อมูลที่อยู่ข้างหลังออก คือ pop เพราะฉะนั้น ข้อมูลที่อยู่ข้างหลัง คือ เลขอะไร เลข 9 ใช่ไหมคะ ข้อมูลที่อยู่ข้างหลัง ตัวหลังสุด ก็คือเลข 9 ไม่ใช่ค่ะ คือ เลข 4 พูดผิด ตัวหลังสุด คือ เลข 4 เพราะฉะนั้น ครูเอาเลข 4 ออก ถูกไหมคะ ครูก็ลบมันทิ้งไปเลย ครูลบมันทิ้ง ถูกไหม Pop คือ เอาออก เพราะฉะนั้น มันจะไม่มีข้อมูลหมายเลข 4 อยู่ใน stack ของเราแล้ว เพราะฉะนั้น ข้อมูลตัวล่าสุดของเราเลขอะไรคะ เลข 9 เพราะฉะนั้น เลข 9 เราอยู่ที่หมายเลขช่องอะไร เราไม่รู้เราก็เขียน 0 1 2 เพราะฉะนั้น ค่า pop ก็คือ ค่า 2 นะคะ อันไหนที่เราตัดทิ้งเราก็ลบออกไปเลยถัดมา เรา pop อีกแล้ว pop คืออะไรคะ เอาออก เราก็เขียนไว้ก่อนนะ Pop คือ เอาออก เอาตรงไหนออก มันเหลือตัวเดียวน่ะ เห็นไหมคะ มันมีเลข 7 ตัวเดียว เพราะฉะนั้น เราต้องเอาเลข 7 ออก เพราะฉะนั้น ตอนนี้เรามีข้อมูลใน stack ไหม ไม่มี จะเป็น 0 ได้ไหม ไม่ได้ ถูกไหมคะ เป็น 0 ไม่ได้ ถูกไหมคะเพราะเราเอาเลข 7 ออกไปแล้ว เพราะฉะนั้นTop ของเราจึงมีค่าเป็น -1 ตามที่ครูบอกนะ stack ว่าง มีค่าเป็น -1 โอเค เราลองมาดู queue queue queue เห็นไหมคะ ครูบอกแล้ว ตัวนี้คือ Queue เห็นไหมคะ ในคำสั่งครูก็บอกแล้วว่า อันนี้ คือ queue queue จะมีตัวกำกับหรือตัวชี้อยู่ 2 ตัว ก็คือ front กับ rear คือ f กับ r ใช่ไหมคะ Front อยู่ข้างหน้า rear อยู่ข้างหลัง จะมีคำสั่ง enqueue กับ dequeue ใช่ไหมคะ dequeue คืออะไร เอาออก dequeue คือ เอาข้อมูลออก เอาข้างหน้าหรือข้างหลังออก เอาข้างหน้าออก เห็นไหมคะ Dequeue คือ เอาข้างหน้าออก เพราะฉะนั้น เอาเลขอะไรออกคะ เลข 7 เอาเลข 7 งออก เพราะฉะนั้น ข้อมูลตัวแรกคืออะไร เราเขียนหมายเลขก่อนข้อมูลตัวเลขจะอยู่ที่เลข 6 ใช่ไหม มันตรงกับเลขอะไรคะ มันตรงกับช่องอะไร ช่อง 1 ก็คือ front ก็คือข้างหน้าถูกไหม ตัวสุดท้ายอยู่ช่องเลขอะไร เลข 3 นะคะ อันนี้คือตัวแรก อันนี้คือตัวสุดท้าย โอเค ถัดมา ครูใช้คำสั่ง enqueue เราเห็น Enqueue แล้วมีตัวเลขใช่ไหมคะ แสดงว่าต้องเอาเข้าน่ะ เอาเข้า ถูกเปล่า เอาเข้าข้างหน้าหรือข้างหลัง ข้างหลัง เอาเลข 3 เข้า ถูกไหมคะ พอครูเอาเลข 3 เข้า จะไปอยู่เลขไหน จะอยู่หลังหมายเลข 6เราใส่เลขกำกับก่อน 0 1 2 ข้อมูลตัวแรกอยู่ที่ไหนคะ 0 ข้อมูลตัวสุดท้ายอยู่ที่ 2 front บอก front จะบอกข้อมูลตัวแรกใช่ไหมคะ ส่วน rear จะบอกข้อมูลตัวสุดท้าย ถัดมาEnqueue เอาเข้า เอาออก เอาเข้า เอาเข้าข้างหลัง เอาอะไรคะ เอา 8 เข้า เพราะฉะนั้น มันจะไปอยู่ที่ช่องหลังเลข 4 มันมีหมายเลขช่องไหม มี ข้างหลัง ก็คือ rear ใช่ไหม 8 อยู่หมายเลข 3 ตัวแรก อยู่ช่องหมายเลข 1 เห็นไหมคะ อันนี้คือช่องแรก อันนี้คือช่องสุดท้าย ถัดมา dequeue คืออะไรคะ เอาออก เอา... ข้างหน้าออก ใช่ไหมคะ เพราะฉะนั้น เอาหมายเลขอะไรออก หมายเลข 4 เพราะฉะนั้น ข้อมูลจะเหลือแค่ 1 ตัว เพราะฉะนั้น อยู่ช่องฟมายเลขอะไรคะ หมายเลข 2 มีข้อมูลอยู่แค่ตัวเดียว เห็นไหมคะ หมายเลขช่อง ก็คือเลข 2 ถัดมา Dequeue Dequeue คืออะไรคะ เอาออกอีกแล้ว เอาอะไรออก เอา 2 ออก ตอนนี้มีอะไรใน queue ไหม ไม่มี เพราะฉะนั้น จะมีค่าเป็น -1 คือ queue ว่าง เมื่อกี้เราใช้คำสั่ง enqueue เพราะฉะนั้น Endqueue 5 หมายถึงอะไรคะ เอาข้อมูลเลขอะไร เอาข้อมูลเลข 5 เข้าไปใน queue ใช่ไหมคะ dequeue คืออะไร เอาข้อมูล ทำไมคะ ออกจาก queue โอเค ถ้า Push คือ stack ถูกไหมคะ push คือ stack เอาข้อมูลอะไรเอาข้อมูล 5 ใส่ลงไปใน Stack 5 มาจากไหน นี่นะ มันบอกนี่ คำสั่งมันบอกว่าเอาเลข 5 นะคะ ส่วน Pop คืออะไรคะ เอาข้อมูลออกจาก Stack เอาข้อมูลข้างหลังหรือข้างหน้าออก Stack เอาข้อมูลข้างหลังหรือข้างหน้าออก ข้างหลัง ถูกไหมคะ เอาข้อมูลข้างหลังออก เอาข้อมูลจากข้างหลังนะคะออก เดี๋ยวถ่ายรูปนะคะ ลงใน classroom หน่อย ถ่ายรูปแบบฝึกหัดที่ทำนะคะ ลงใน Classroom เสร็จแล้ว ทุกคนถ่ายรูปนะคะ แล้วก็โพสต์ลงไปใน classroom ถ่ายให้ครบ 3 แผ่นเลยนะ มี 4 คน ทุกหน้า เสร็จแล้ว เดี๋ยวครูให้เบรกอีก 5 นาทีนะ เดี๋ยวมาขึ้นเรื่องใหม่นะคะ จะให้เบรกก่อน จะได้เคลียร์ของเก่า โอเค มาต่อนะคะ มาต่อนะคะ จะเป็นอีก 1 โครงสร้างนะ ที่เราพูดถึง Stack กับ Queue ไปแล้วนะคะ Stack กับ queue ข้อมูลมันจะเรียงกันเป็นแถวนะคะ อาจจะเป็นแนวตั้งหรือแนวนอนก็ได้ แต่ทีนี้ ถ้ามีข้อมูลนะคะ ที่มันไม่ได้จัดเก็บเป็นแนวข้อมูลหรือเชิงโครงสร้าง เป็นแนวตั้งหรือแนวนอนนะคะ เป็นเส้นตรงนะคะ เป็นแท่ง เป็นแนวตั้ง แนวนอน แต่ข้อมูลเรานะคะ มีลักษณะการจัดเก็บเป็นลำดับชั้น แล้วเราจะเก็บข้อมูลแบบไหน เราก้จะมีรูปแบบนะคะ แบบแรก ก็คือเราจะเรียกว่า "โครงสร้างข้อมูลแบบต้นไม้" แล้วก็มีอีก 1 แบบนะคะ ที่สามารถเก็บเป็นลำดับชั้น จัดเป็นแบบเชื่อมโยง เครือข่ายได้นะคะ คือ กราฟกับต้นไม้นะ เราเรียนต้นไม้ก่อน เสร็จแล้วเราจะมาเรียนกราฟ ลักษณะของโครงสร้างข้อมูลแบบต้นไม้ จะเหมือนกับ folder ที่เราจัดเก็บ เห็นไหมคะ จะลักษณะเหมือนกับ Folder เลย มีตัวแม่ คลิกเข้าไปก็มีลูก ถูกไหมคะ คลิกเข้าไปก็มีตัวลูกเรื่อย ๆ นะ คราวนี้ในการจัดเก็บข้อมูลโครงสร้างข้อมูลแบบต้นไม้นะคะ เดี๋ยวเราลองจินตนาการนะ ต้นไม้นะคะ เดิม รากมันจะอยู่ด้านล่าง ถูกไหม ต้นไหมนี่ ที่เราปลูกกัน รากมันจะอยู่ด้านล่าง เรากลับดึงราก ขึ้นมาไว้ข้างบนนะคะ ลักษณะแบบนี้ ตัวบนสุดก็ คือ รูทโหนด ก็คือตัวพ่อแม่เลยน่ะ คือ รูต ถ้าเทียบกับบรรพบุรุษ ทุกคนนึกภาพโครงสร้างบรรพบุรุษที่อยู่ในบ้านเราได้นะ เราจะมีบตั้งต้นแล้วก็มีลูกหลายแตกแขนงมาเรื่อย ๆ นะคะ ลักษณะแบบเดียวกัน บนสุด คือ บรรพบุรุษ รูทโหนดคือ ต้นกำเนิดเลย แต่รูตโหนดเรามีอยู่แค่ 1 โหนด เท่านั้นนะคะ ตัววงกลจะเรียกว่า "โหนด" ตัววงกลม จะเรียกว่า "โหนด" เสร็จแล้วนี่นี่คือบรรพบุรุษถูกหรือเปล่า บรรพบุรุษนี่ ก็มีลูก ถูกไหมคะ บรรพบุรุษก็มีลูก ลูกก็มีหลานออกมา ใช่ไหมคะ กลุ่มนี้ คือ พี่น้องนะ คือ พี่น้องที่มีพ่อเดียวกันกลุ่มนี้นะคะ ด้านซ้ายกับด้านขวาเป็นลูกพี่ลูกน้องใช่ไหม เป็นลูกพี่ลูกน้อง อันนี้คือพ่อเรา อันนี้อา ลูกอาคือลูกพี่ลูกน้องเรา โอเค ตัวที่อยู่ล่างสุดนะคะ ตัวที่อยู่ล่างสุด เราจะมีชื่อเรียกว่า "ลีฟโหนด" ก็คือเราเป็นรุ่น ยังไม่มีใครต่อจากเรา เรายังไม่ได้แต่งงานถูกไหมคะ เราจะเปรียบเป็นลีฟโหนดของตระกูลนะ อยู่ล่างสุด เป็นคนล่างสุด เป็นคนชั้นสุดท้าย ล่ของตระกูลนะคะ เราจะเห็นว่าลักษณะของโครงสร้างข้อมูลแบบนี้ เราเห็นเป็นลำดับชั้นถูกไหมคะ อันนี้คือชั้นที่ 1 ชั้นที่ 2 ชั้นที่ 3 ไล่ลงมาเรื่อย ๆ นะคะ โอเค ตัวบนสุด เรียกว่า "root node" root คือ root node คือ โหนดแม่ ตัวล่างสุด เรียกว่า "leave node" นะคะ คือ ลีฟโหนด คือ ตัวสุดท้าย จะเห็นว่าลีฟโหนด มี 7 มี 9 มี 15มี 45 แล้วก็ 77 พวกนี้ที่อยู่ล่างสุดนี่เรียกว่า "left node" ทั้งหมดเลยข้างบน ข้างบนเลข 7 คือ พ่อนะ เราไม่พูดถึงแม่นะคะ เราเรียกพ่อนะ พ่อของ 7 คือ 13 ลูกของ 13 คือ 7, 9, 15 นะคะ พ่อของ 13 คืออะไร 23 โอเค คราวนี้ จากตัวนี้นะคะ เราดูการเรียกชื่อ หรือว่าลำดับของการเรียกชื่อ โหนด 23 มันอยู่บนสุด เราจะเรียกว่า มันคือ "รูตโหนด" ตัวนี้นะคะ โหนดที่อยู่บนสุด ก็คือ root node ตัวนี้นะคะ เพราะว่ามันคือโหนดแรกสุดนะ ถัดมา โหนด 23 นี่ เชื่อมไปยังโหนด 13 กับ 54 นะคะ มันเป็นพ่อของ 13 กับ 54 นะ มันเป็นพ่อของ 13 กับ 54 เสร็จแล้ว 13 กับ 54นี่ เป็นลูก เป็นลูกของ 23 นะคะ 7, 9, 15 โหนด 7 โหนด 9 โหนด 15 เป็นลูกของโหนด 13 ลีฟโหนด คือ โหนดล่างสุดของแต่ละกิ่งของต้นไม้นะ โหนดที่อยู่ด้านล่างสุดของแต่ละกิ่งของต้นไม้ ไม่มีอะไรต่อลงไปอีกแล้ว เราเรียกตัวนั้นว่า leaf node นะคะ เห็นไหม เริ่มต้น รูตโหนด คือ 23 นะคะ คราวนี้ ระดับของโหนด ก็คือลำดับชั้นของโหนดน่ะ เราเริ่มต้นที่ลำดับ 0 นะคะ ลำดับชั้นของต้นไม้นะคะ ลำดับชั้นของต้นไม้นะคะ เราเราเริ่มต้นที่ 0 เพราะฉะนั้น ตัวบนสุด จะอยู่ระดับ 0 นะคะ 15 กับ 54 จะอยู่ระดับ 1 ระดับ 2 ระดับ 3 ไล่ลงมาเรื่อย ๆ โหนดพ่อ พ่อ ก็คืออยู่สูงกว่าตัวเอง ถูกไหม ลูก ก็คือ ณ โหนดที่กล่าวถึง พ่อก็คืออยู่ระดับสูงขึ้นไป ลูกก็คือระดับล่างลงไป 1 ชั้นนะคะ โหนดพี่น้อง จะเป็นพี่น้องกันได้ ต้องพ่อเดียวกัน 7, 9, 15 คือ พี่ น้อง เพราะมีพ่อเดียวกัน ถูกไหม เพราะมีพ่อเดียวกัน แต่ 46 กับ 77 ก็เป็นพี่น้องกัน ถูกไหมคะ พ่อเดียวกัน 15 กับ 66 เป็นลูกพี่ลูกน้องกันนะ เป็นญาติกัน เป็นลูกพี่ลูกน้องกัน ลีฟโหนด ก็คือโหนดที่อยู่ล่างสุด ไม่มีอะไรทิ่มลงไปแล้ว ไม่มีอะไรแตกออกมาอีกแล้ว โหนดนี้ไม่มีอะไรแตกออกมาอีกแล้ว มันสุดท้ายแล้ว ส่วนดีกรี ดีกรี คือ จำนวลูกทั้งหมดของโหนดที่กล่าวถึง เช่น ดีกรีของ 46 คืออะไร คือ 1 ดีกรี คือ จำนวนลูก ดีกรี คือ จำนวนลูกนะคะ 46 มีลูกอยู่ 1 13 มีลูกอยู่ 3 47 มีลูกไหมคะ ไม่มี 77 77 มีลูกไหม ไม่มี เพราะฉะนั้น ดีกรีมีค่าเป็นอะไรคะ เป็น 0 มีกระดาษไหม หยิบกระดาษให้ครูหน่อย ครูมีรูป ครูมีรูปนี้นะคะ เขียนด้านหลังกระดาษที่ครูให้ไปก็ไปคราวที่แล้วก็ได้ ตอบให้ครูหน่อย ... นี่ ตอบอะไรเอ่ย วาดรูปก่อนนะ แล้วก็ตอบว่าข้อ 1 รูตโหนดคืออะไร ข้อ 2 ข้อ 3 ข้อ 4 ข้อ 5 ข้อ 6 ข้อ 7 ใครมีสมุด ทำลงสมุดนะคะ วาดรูปด้านซ้ายก่อน แล้วก็เขียนตอบด้านขวา ลอกโจทย์ด้วยนะ แล้วก็ เช่น ระดับของโหนด 30 คือ... ตอบมา อันนี้ครูก๊อบ(ปี้) ก๊อปฯ คำอธิบายมาให้นะคะ จะได้เห็นด้วย ว่ารูตโหนดคืออะไร ระดับของโหนดคืออะไร ดีกรีคืออะไร คราวนี้ดู ดูอีกทีหนึ่งนะคะ ดูอีกทีหนึ่งนะ ในโหนดนะคะ ที่ครูให้ เดี๋ยวนะ จากต้นไม่นะคะ ที่เราเห็นต้นนี้นะ จากต้นไม้ต้นนี้นะคะ ที่เราเห็น 1 ต้นนี่ ถ้าเราพูดถึงพ่อนะคะ พ่อแสดงว่าคนที่อยู่สูงกว่าเรา ถูกไหมะ พ่อของเรานี่ แสดงว่าลำดับชั้นนี่จะอยู่สูงกว่าถูกไหมคะ ลูกของเราจะต้องอยู่ต่ำกว่าเรานะคะ อย่างเช่น 55 นะคะ ครูพูดถึง 55 พ่อของ 55 คืออะไร พ่อก็อยู่ข้างบน ถูกไหมคะ ก็คือ 50 ถูกไหม อันนี้คือพ่อ 55 คือ ลูกของ 50 ถูกไหม คะ แล้วลูกของ 55 คืออะไร แล้วลูกของ 55 คืออะไรคะ 52 อันนี้คือลุก เห็นไหมคะ เราพูดถึงโหนดนี้ เราพูดถึงโหนด 55 พ่อของ 55 คืออะไร คือ 50 ลูกของ 55 คืออะไร 52 เห็นไหมคะ เห็นไหม มันอยู่ด้านล่าง นี่คือลูก ถัดมา พ่อของ 70 แสดงว่ามันต้องอยู่ข้างบน ถูกไหม คืออะไร คือ 40 ใช่ไหมคะ พ่อของ 70 ก็คือ 40 แล้วลูกของ 70 คืออะไร 5 พี่น้อง หมายถึงพี่น้องพ่อเดียวกัน พี่น้อง คือ พี่น้องพ่อเดียวกัน พี่น้องของ 20 คืออะไร 70 เพราะอะไร เพราะมีพ่อเดียวกันเดียวกันนี่ไง เพราะมีพ่อเดียวกันนะคะ ถึงเป็นพี่น้องกัน โจทย์ข้อแรก รูตโหนด รูตคืออะไรคะ ตัวบนสุด รูต คือ ตัวบนสุดใช่ไหมคะ ตัวบนสุดคืออะไร 40 ถูกไหมคะ บนสุด คือ 40 พ่อของ 50 พ่อ แสดงว่าดูข้างบนนะ พ่อของ 50 คืออะไร 70 นะคะ พ่อของ 50 ก็อยู่ด้านบน ถูกเปล่า อยู่ด้านบนตัวเองน่ะ ตัวเองเชื่อมมาจากเส้นอะไร ก็คือ 70 ถัดมา ลีฟโหนด คือ โหนดที่ไม่มีลูก ก็คือไม่มีอะไรต่อท้ายลงไปแล้วนะคะ โหนดที่ไม่มีอะไรต่อท้ายตัวเอง คือ ไม่มีลูกน่ะ มันสิ้นสุดที่ตัวเอง มันไม่มีอะไรต่อท้ายแล้ว เพราะฉะนั้น ลีฟโหนดเรามีกี่ตัว 3 ตัว ก็คืออะไรคะ 30, 45 แล้วก็ 52 ก็คือตัวที่ไม่มีลูกน่ะ ถูกไหมคะ ตัวที่ไม่มีลูก ไม่มีลูก อันนี้ก็ไม่มีลูก ถัดมา พี่น้อง พูดถึงพี่น้องต้องพ่อเดียวกัน พี่น้องของ 45 คืออะไรคะ 55 เพราะอะไร เพราะพ่อเดียวกัน เดี๋ยวนะ นี่ไง พี่น้องของ 45 ก็คือ 55 เพราะมันพ่อเดียวกันไง พ่อ ก็คืออะไร 50 ต่อนะคะ พี่น้องของ 50 นี่ ดูสิ 50 มีพ่อ คือ 40 ใช่หรือเปล่า มีพ่อ คือ 70 มีพี่น้องไหม ไม่มี ไม่มีพี่น้องนะคะ เป็นลูกคนเดียว หรือขีด - ไม่มีพี่น้องน่ะ เป็นลูกคนเดียวนะคะ ถัดมา ระดับของ 30 คืออะไร ระดับคืออะไรคะ ชั้น ลำดับชั้นจากรูตโหนด โดยเริ่มต้นที่ 0 ชั้นนี้มีระดับเป็น 0 ใช่ไหมคะ ชั้นนี้ ระดับเป็น 1 ชั้นถัดมา ระดับเป็น 2 แล้วก็เป็น 3 30 อยู่ระดับไหนคะ ระดับ 2 55 ดีกรีคืออะไรคะ จำนวนลูก มีลูกกี่คน 55 มีลูกกี่คน คนเดียวนะคะ นี่ไง 55 มีลูกกี่คน มีลูกคนเดียวนะคะ เห็นไหม ก็ตอบว่า 1 ดีกรีของ 55 คือ 1 ดูนะคะ ครูให้วาดต้นไม้เครือญาตินะ สมชายเป็นต้นตระกูล สมชายอยู่บนสุด ถูกไหมคะ สมชายมีลูก 2 คน คือ A กับ B A มีลูก 1 คน ชื่อ C Bมีลูดอีก 3 คน ชื่อ D E F และ F ก็มีลูก 1 คน ชื่อ Z วาดต้นไม้เครือญาติให้ครูหน่อย เราเริ่มต้น ถูกไหมคะ ต้นตระกูลของบ้านหลังนี้คือใคร คือ สมชาย เพราะทุกคนต้องมีสมชายเป็นจุดเริ่มต้นนะคะ เป็นต้นตระกูลของบ้านนี้ สมชายมีลูกกี่คน 2 คน ช่วยครูวาดต่อหน่อย คือ A กับ B เราวาดต่อให้ครูหน่อย A มีลูก 1 คน ชื่อ C สมชายมีลูก 2 คน คือ A กับ B ใช่ไหมคะ A มีลูกกี่คน มีลูก 1 คน ใช่ไหมคะ ก็ลากต่อจาก A ใช่ไหมคะ เพราะมันเป็นลูกของ A น่ะ มาลากออกเป็นลูกคนอื่นไม่ได้เราก็วาดออกจาก A เพราะ A มีลูก 1 คน B มีลูกกี่คน 3 คน เพราะฉะนั้น ต้องมีกี่เส้น 3 เส้นนะคะ เห็นไหม ครูก็มีเส้นจาก B 3 เส้นนะ เพราะมีลูก 3 คน วาดลูกก่อน ลูกคนแรกชื่อ D, E แล้วก็ F ใช่ไหมคะ คนอื่นไม่มีลูกเลยนะ D กับ E ไม่มีลูกเลย แต่ F คนเดียวที่มีลูกใช่ไหมคะ ก็คือ Z อันนี้เครือญาติของบ้านสมชายใช่ไหมคะ เป็นแบบนี้ ครูถามต่อ จากรูปนี้ รูตโหนดคืออะไรคะ รูตโหนดคืออะไร ก็คือโหนดที่ชื่อสมชาย ถูกไหม ก็เขาอยู่บนสุดน่ะ เขาเป็นต้นตระกูลของบ้านหลังนี้ ลีฟโหนดคืออะไรคะ ลีฟโหนด ลีฟโหนด คือ โหนดที่มีลูกไหม ไม่มีลูก เพราะฉะนั้น อันไหนที่ไม่มีลูก C, D, E แล้วก็ Z เห็นไหมคะ คนเหล่านี้เป็นโสด ถูกไหม ถ้าเทียบนะ คนเหล่านี้เป็นโสด ยังไม่ได้แต่งงานเลยนะคะ ยังเหล่านี้ก็ยังเป็นโสดอยู่ ไม่มีลูก ไม่มีลูก พี่น้องของ D คือใคร พี่น้องของ D มีใครบ้าง D Dog D Dog พี่น้องของ D Dog มีใครบ้าง E กับ F ใช่ไหมคะ พี่น้องของ D Dog C มีพี่น้องไหมคะ C มีพี่น้องไหม ไม่มี C ไม่มีพี่น้องนะคะ C เป็นลูกคนเดียว ไม่มีพี่น้อง Z มีพี่น้องไหม ไม่มี เป็นลูกคนเดียวเหมือนกัน Z ก็เป็นลูกคนเดียว โอเคจากเครือญาติตรงนี้ใช่ไหมคะ เราวาดได้ต้นไม้ 1 ต้นนะ ถัดมา ต้นไม้นี่ ในต้นไม้นะคะ เราสามารถมีต้นไม้ย่อย ที่อยู่ภายในต้นไม้ได้ เช่น จากรูปนี้ ตรงนี้ ฝั่งซ้ายของ 23 ก็คือต้นไม้ย่อยนะ ของ 23 ฝั่งขวา ตรงนี้ก็คือต้นไม้ย่อยนะคะ เห็นไหม เพราะว่ามันมีกิ่งก้านสาขาแตกลงมานะ ตรงนี้ก็เลยเป็นต้นไม้ย่อย ลักษณะของต้นไม้นะคะ เดี๋ยวเราจบที่ลักษณะของต้นไม้ ลักษณะของต้นไม้จะมีอยู่ 2 รูปแบบที่เราจะพูดถึง ตัวแรก Binary Tree Bi คือ 2 Binary Tree ก็คือต้นไม้ที่มีลูกได้ไม่เกิน 2 โหนด ถูกไหมคะ ต้นไม้นี่ มีลูกได้ไหม เกิน 2 เห็นไหม มีได้ไม่เกิน 2 มี 1 ก็ได้นะ มี 2 ก็ได้ ไม่มีก้ได้ แต่มี 3 ไม่ได้นะคะ มีลูก 3 ไม่เข้าข่ายตัวนี้นะ เป็นต้นไม้เฉย ๆ แต่ไม่ใช่ต้นไม้ Binary Tree อีก 1 ต้นไม้นะคะ BST ตรงนี้ BST หรือว่า BinarySearch Tree มีลูก 2 เห็นไหมคะ มีลูก 2 หรือมีลูก 1 ก็ได้ แต่สิ่งที่เพิ่ม คือ ลูกด้านซ้าย ดูที่ 8 นะ ลูกด้านซ้าย ด้านซ้าย น้อยกว่าพ่อ ลูกด้านขวามากกว่าพ่อ ซ้าย น้อยกว่าพ่อ ขวามากกว่าพ่อ ตัวนี้ คือ Bi BST หรือว่า Binary Search Tree นะคะ สังเกตง่าย ๆ เห็นไหมคะ ด้านขวาทุกตัว มากกว่า 8 เลย แต่ด้านซ้ายทุกตัวต้องน้อยกว่า 8 รูปนี้เหมือนกัน ด้านขวามากกว่า 50 ด้านซ้ายน้อยกว่า 50 นะคะ รูปนี้เหมือนกัน บนสุด คือ 7 ถูกหรือเปล่า ด้านซ้ายต้องน้อยกว่า 7 ด้านขวาต้องมากกว่า 7 โอเค มี 3 แบบนะ มีต้นไม้ธรรมดา ทุกอย่างเป็นต้นไม้นะ มีต้นไม้ธรรมดา มี Binary Tree ลูก 2 แล้วก็ BST ลูก 2 เหมือนกัน แต่ลูกด้านซ้ายน้อยกว่าพ่อ ลูกด้านขวามีค่ามากกว่าพ่อ โอเค เห็นไหม นะ เดี๋ยวคราวหน้านะคะ เดี๋ยวครูจะมาทวนต้นไม้อีกครั้งหนึ่ง แล้วเราก็พูดถึงเรื่องต้นไม้ต่อ เราจะเพิ่มโหนดเข้าไปในต้นไม้ ทำอย่างไร จะลบโหนดออกจากต้นไม้ ทำอย่างไรนะคะ โอเค โอเคนะคะ เดี๋ยวสัปดาห์หน้านะ เรามาเจอกันอีก วันนี้ก็น่าจะพอแค่นี้ เดี๋ยวครูเช็กชื่อ คราวนี้นะคะ สัปดาห์หน้า พอดีว่าครูติดลงพื้นที่ ครูอยากจะขยับ เลื่อนเป็นพฤหัสบดีบ่าย