วันศุกร์ที่ 24 ธันวาคม พ.ศ. 2553

การทำงานของ Stack and Queue


Stack นั้นจะมีการทำงานที่เรียกกันว่า push สำหรับการเพิ่มค่าเข้าไปในชุดข้อมูลด้านบน และ pop แทนการนำข้อมูลบนสุดออกมา ยกตัวอย่างเช่น
มีชุดข้อมูล A ประกอบด้วย [1,2,3,8,4,7]
เมื่อ push [a] เข้าไป จะได้ชุดข้อมูล A ประกอบด้วย [1,2,3,8,4,7,a] และเมื่อทำการ pop จะได้ค่า [a] ออกมาและทำให้ A กลับไปเป็น [1,2,3,8,4,7] เหมือนเดิมครับ
เพื่อให้เห็นภาพกระบวนการที่ชัดเจนมากขึ้น จะขอยกตัวอย่างโจทย์พื้นฐานสำหรับการฝึกใช้เบื้องต้นสักข้อนึงนะครับ
ตั้งหนังสือ
นายหัวหอมเป็นสมาชิกชุมนุมห้องสมุดโรงเรียนแห่งหนึ่ง วันนี้เป็นเวรของเขาในการทำการเรียงหนังสือในหมวดหนังสือนวนิยาย แต่ทว่า เขาเกิดเบื่อ จึงชวนนายหอมหัวมาเล่นเกมส์เรียงหนังสือกับเขา โดยกติกาการเล่นมีอยู่ว่า
เริ่มต้น นายหัวหอมจะจัดเรียงหนังสือจำนวน n เล่ม ในแต่ละเล่มจะมีจำนวนหน้า i(j) หน้า หลังจากนั้นนายหัวหอมจะสามารถหยิบหนังสือออกหนึ่งเล่ม หรือนำหนังสือเล่มใหม่ใส่มาเพิ่มก็ได้ หลังจากนายหัวหอมพอใจแล้ว นายหอมหัวจะต้องตอบว่าหนังสือที่อยู่บนสุดมีจำนวนกี่หน้า
ตัวอย่าง
เริ่มต้น 210 247 132 154 256 131 741
push 175
pop
push 143
push 19
pop
pop
pop
pop
pop
pop
จะได้ว่า หนังสือเล่มที่อยู่บนสุดมีจำนวนทั้งสิ้น 132 หน้า
บางคนอาจมองไม่ออก งั้นเราลองมาดูลำดับเหตุการณ์กันก่อนนะครับ
เริ่มต้น {210,247,132,154,256,131,741}
push 175 {210,247,132,154,256,131,741,175} // 175 เพิ่มขึ้นจากทางด้านหลัง
pop {210,247,132,154,256,131,741} // 175 ถูกเอาออกไป
push 143 {210,247,132,154,256,131,741,143} // 143 ถูกเพิ่มเข้ามา
push 19 {210,247,132,154,256,131,741,143,19} // 19 ถูกเพิ่มเข้ามา
pop {210,247,132,154,256,131,741,143} // 19 ถูกเอาออกไป
pop {210,247,132,154,256,131,741} // 143 ถูกเอาออกไป
pop {210,247,132,154,256,131} // 741 ถูกเอาออกไป
pop {210,247,132,154,256} // 131 ถูกเอาออกไป
pop {210,247,132,154} // 256 ถูกเอาออกไป
pop {210,247,132} // 154 ถูกเอาออกไป
สิ้นสุด
สุดท้าย จะได้เล่มที่อยู่บนสุด มีจำนวนทั้งสิ้น 132 หน้าตามที่ตอบไว้เบื้องต้นนั่นเอง
โจทย์เพิ่มเติม
หลังจากที่นายหอมหัวสามารถเอาชนะเกมส์นี้ได้อย่างง่ายดาย นายหัวหอมจึงอัพเกรดการเล่นขึ้น โดนมีกติกาที่เปลี่ยนไปดังนี้
หลังจากทำการเรียงใหม่ตามใจชอบแล้ว นามหอมหัวจะต้องบอกจำนวนหน้าทั้งหมดของตั้งหนังสือทั้งหมดที่เหลืออยู่
++
ในส่วนของ Queue หรือแถวคอยนั้น จะประกอบไปด้วยคำสั่งหลักๆคือ enqueue และ dequeue แทนที่ push และ pop ครับ อย่างเช่นว่า
มีชุดข้อมูล A = [1,8,7,6,3]
เมื่อทำการ enqueue [a] เข้าไปจะได้เป็น A = [1,8,7,6,3,a] และเมื่อทำการ dequeue นั้น จะได้ [1] ออกมาและทำให้ A = [8,7,6,3,a] ครับ
ลองมาดูโจทย์เบื้องต้นในส่วนของ Queue กันเลยดีกว่า
เรียงหนังสือ
นายหัวหอมและนายหอมหัว ยังคนวนเวียนอยู่บนกองหนังสือนิยายจำนวนมากที่เขาทั้งสองต้องช่วยกันเก็บเข้าที่ แล้วพวกเขาก็พบว่ามันน่าเบื่อมาก ทำให้นายหอมหัวเสนอที่จะเล่นเกมแข่งกับนายหัวหอมอีกครั้ง แต่ในครั้งนี้นายหอมหัวจะเป็นคนตั้งโจทย์
ในชั้นหนังสือหนึ่งชั้น นายหอมหัวจะมีสิทธิในการเอาหนังสือที่อยู่หน้าสุดออกและเพิ่มหนังสือเล่มใหม่เข้าไปด้านหลัง โดยจะบอกแค่ว่า หนังสือแต่ละเล่มนั้นเป็นเล่มที่เท่าไรในนวนิยายมหากาพย์ โคนาน ซึ่งมีออกมาแล้วมากกว่า 60 เล่ม นายหัวหอมจะต้องตอบเพียงสั้นๆว่า ในชั้นหนังสือชั้นนั้นหลังจากผ่านกระบวนการแล้วยังมีเล่มที่ซ้ำกันอยู่หรือไม่
ตัวอย่าง
เริ่มต้น 1,2,7,2,4,6,8
enqueue 5
dequeue
dequeue
enqueue 1
enqueue 3
dequeue
ตอบ ไม่มีเล่มที่ซ้ำกัน
เริ่มต้น {1,2,7,2,4,6,8}
enqueue 5 {1,2,7,2,4,6,8,5} // 5 ถูกต่อเข้ามา
dequeue {2,7,2,4,6,8,5} // 1 ถูกหยิบออกไป
dequeue {7,2,4,6,8,5} // 2 ถูกหยิบออกไป
enqueue 1 {7,2,4,6,8,5,1} // 1 ถูกเพิ่มเข้ามา
enqueue 3 {7,2,4,6,8,5,1,3} // 3 ถูกเพิ่มเข้ามา
dequeue {2,4,6,8,5,1,3} // 7 ถูกดึงออกไป
สิ้นสุด
จะพบว่า ไม่มีเล่มใดที่ซ้ำกัน ในเรียงอยู่ในชั้นนี้ หลังจากผ่านกระบวนการเสร็จแล้วครับ

วันพุธที่ 22 ธันวาคม พ.ศ. 2553

เรื่องเล่า จากก้อนหินและแท่งเหล็ก

เรื่องเล่า จากก้อนหินและแท่งเหล็ก บันทึกที่ ๕

"บทสรุป ของ ทุกๆ คำตอบ"

คุณสงสัยอะไรไหม? สงสัยว่าทำไมกันหน๊า.. ชีวิตทำไมมันถึงเป็นเช่นนี้ ทำไมกูไม่รวยซะที ทั้งๆที่เราก็ทำเหมือนกับคนอื่นๆเค้า ในบางครั้งอาจจะทำมากกว่าคนอื่นด้วยซ้ำ แต่ทำไม ชีวิตมันก็ยังอยู่แค่นี้...ไม่มีอะไรดีขึ้น

ความสุขที่แท้จริง คืออะไร ? แล้วสิ่งที่สุดของที่สุดที่มนุษย์ต้องการคืออะไร? รวยล้นฟ้าเป็นมหาเศรษฐีพันล้าน (เอารวย ซะแค่ไหนดีละ บิว เกท) พอป่ะ บางคนขอแค่วันนี้ทั้งวันขอเถอะ ขอให้มี ข้าวกิน..ก็พอ หลายคนบอกว่าความจริงๆคือการที่คน คนหนึ่งประสบความสำเร็จในชีวิต ไต่เต้าจากคน จนๆคนหนึ่งจนมาเป็นเจ้าของธุรกิจพันล้าน..แต่บางคนบอกว่า ความสุขจริงมันคือ การที่เราอยู่ดีกิน ดี การพออกพอใจในสิ่งที่มีอยู่..หลากหลายเหตุผลของการนิยาม ของคำว่า ความสุข คุณเคยสงสัยไหมว่าทำไมกันล่ะคนหนึ่งว่าความสุขจริงๆคือการประสบความสำเร็จในชีวิตการงาน บางคนก็ว่าสุขจริงคือการพออยู่พอกินแล้วสิ่งในกันละที่ ที่สุดแล้วมันคือความสุขจริงความสุขที่แท้จริงทั้งที่หลายคนพูดมามันก็ล้วนแล้วแต่ถูกทั้งนั้น เอ้อ.บางคนว่ามันอยู่กับคนหรอก คนเราคิดเหมือนกันซะที่ไหนละ..แน๊ะ มันก็ถูกอีก

บางคนค้นหาความความสุขมาทั้งชีวิต เค้าบอกว่าจนป่านนี้ยังไม่รู้เลยว่าอะไรมันคือความสุขที่แท้จริง..
มีครั้งหนึ่งผมได้ยินพ่อใหญ่คนหนึ่งบอกเป็นในๆว่า
ผมถามพ่อใหญ่แก ว่า พ่อใหญ่..พ่อใหญ่ ทำงานที่นี้มากี่ปีแล้วครับ
พ่อใหญ่: 30 ปี บ้อ..
ผม: แล้วพ่อใหญ่ ไม่อยากไปทำอย่าง อื่นบ้างหรอครับ
พ่อใหญ่: อยากไปอยู่….!
ผม: แล้วทำไม่ไปละครับ ที่นี้เงินเดือน ก็น้อยทำงานหนักด้วย
พ่อใหญ่: เว้าจังสั่นมันกะถืก..ย้อนมันฮักนี้ล่ะ บางเถื่อมันกะหนักอยู่..แต่บางเถื่อได้เฮ็ดแล้วมันมีควมสุข
ผม: - -“
พ่อใหญ่: พ่อใหญ่กะบ่ฮู้ ว่า จักสิเฮ็ดได่ ซำได๋

ครั้งนั้นมัน ยิ่งทำให้ผมงงเข้าไปใหญ่..(คือ สมองมันได้แค่นี้อ่ะ..)ผมฉกคิดอยู่หลายวัน ทำไมกันหนา เงินเดือนก็ เอ่อ.ไม่อยากพูด กดดันก็กดดันอายุแกก็เยอะด้วย..(พ่อใหญ่แก่บ้า รึเปล่าวะ) จนมาถึงวันหนึ่งวันที่ คำถามบางคำถามมันได้คำตอบ ผมลืมเรื่องพ่อใหญ่สนิทไม่ได้คิดด้วยซ้ำ ผมนั่งเซ็คคอม..พร้อมกับเครียร์งานเก่าๆให้เสร็จไปในเวลากัน ผมทำตั้ง 08.30 ปาเข้าไปเกือบจะเที่ยง คือวันนั้นทำงานจนลืมกินข้าวเลย เหนื่อยไหม กดดันไหม ก็ทั้งเหนื่อย ทั้งกดดันแต่มันมีความสุขว่ามันมีความสุขอ่ะมันอยากจะทำอีก บางคนบอกว่าการทำในสิ่งที่รัก สู้รักในสิ่งที่ทำไม่ได้..(เคยได้ยินไหม) จริงเหรอ ผมว่าก่อนที่มันจะรักในสิ่งที่ (มีต่อ)

เรื่องเล่า จากก้อนหิน ถึง แท่งเหล็ก

เรื่องเล่า จากก้อนหิน ถึง แท่งเหล็ก บันทึกที่ ๔ (ศ.สาลา)

เที่ยงของวันหนึ่งในคลังเก็บอะใหล่เครื่องจักรแห่งหนึ่ง ท่ามกลางบรรยากาศอึมคึมของเมฆ ผมนั่งคิดเรื่องอะไรเรื่อยเปลือยคิดไปถึงเรื่องโน้นวกมาเข้าเรื่องนี้ ....
นานพอควร ไม่รู้สักกี่ชั่วโมง...จนกระทั้ง ฝนเม็ดใหญ่ตกลงมาอย่างมืดฟ้ามัวดิน...แต่ถึงอย่างนั้นผมก็ยังคงนั่งคิดกับตัวเองอยู่อย่างนั้น พลันผมก็มีความรู้สึกว่า โอ..ไมวันนี้กูเหนื่อยจังว่ะ ท้อเอามากๆไม่คิดว่าตัวเองจะมาอยูในสภาพแบบนี้ จากเด็กคนหนึ่งที่ไม่เอาไหนคนที่ทำอะไรไม่เคยเป็น คนที่ทำอะไรไม่เคยสำเร็จอย่างผมจะทำงานแบบนี้ได้ คนเซ่อๆซ่าๆอย่างผมเนี๊ยยังมีใครเค้าว่า..เก่ง..เฮ่อ..มันช่างไกลลิบลี่กับตัวผมแต่ถึงกระนั้นผมเองก็พยามยิ้มตอบรับคำชมนั้นทั้งที่ไม่รู้เลยว่ายังมีเรื่องอีกแสนล้านเรื่องที่ยากกว่าเรื่องหลายๆเรื่องที่เคยเจอมา..(ผมทำงานเป็นผู้ช่วยช่างซ่อมในเหมืองหิน บะซอลหนึ่ง )บุญมี หรือผีพลักยังไงก็ไม่รู้ มีผู้ใหญ่ที่นั้นเค้าว่าผมเป็นคอมฯ เอ่อ..ไอ้นี้มันเก่งนะใช้คอมได้ด้วยเป็นไงล่ะผมก็ได้ลื่นขึ้นมาเป็นเสมียนซะงั้น(คัยเค้า)จะเชื่อเฮ่อ...แต่เชื่อเหอะมันเป็นไปแล้วเป็นเสมียนทำงานเซ็คน้ำมัน(ไม่สิเติมน้ำมันช่วยเค้าด้วย)ตื่นตี5ซ่อมรถก็ยังซ่อมเหมือนเดิม..แถมยังมีทีท่าว่าจะหนักกว่าเป็นผู้ช่วยช่างซะอีก เมื่อยอดน้ำมันประจำเดือนที่เซ็คมันดันขาดไปซะนี้..คัยเค้าจะว่าคนเติมน้ำมันล่ะเค้าก็ว่าไอ้คนที่มันเซ็คก่อนอยู่แล้ว..เพราะเหตุนี้ผมก็รู้แล้วว่าผมมันไม่เหมาะกับเรื่องแบบนี้หรอก..ไม่ไหวแน่ขืนฝืนทนทำต่อไปมันต้องแย่กว่าเดิม ว่าไปแล้วชีวิตของผมนี้ มันน้ำเน่าซะยิ่งกว่า ละครน้ำเน่าหลังข่าวทีวีซะอีก หากเป็นเหมือนละครมันก็คงจะเป็นล่ะครที่มีภาคต่อๆ ไม่รู้วันจบ..(ออกแนวดราม่าทิลเลอร์ ออกแอตวานเจอร์ นิดๆ) เฮ่อ..แต่ละะวันไม่รู้เรื่องอะไรต่อมิอะไรถ่าโถมโหมกระหน่ำเข้ามามีทั้งเรื่องดีและเรื่องร้ายๆปะปนกันจนในบางครั้งคนอย่างผมต้องอ้า..ปากค้างพูดไม่ออกเลยก็มี...แต่สุดท้ามันก็ต้องทน และก็ทน(นี้น่ะหรือชีวิต ของลูกผู้ชาย)
วันเดือนปีอันเหน็บหนาวพัดพาชีวิตของผมเข้ามาเป็นคนของที่นี้โดยม่รู้ตัว เหมือนหนังเรื่องหนึ่งเลยเนอ๊อะไม่รู้ว่าพี่น้องเคยดูหรือเปล่า แต่นั้นไม่สำคัญหรอกเพราะถึงแม้ที่ที่ผมอยู่ มันออกกันดาร(เถื่อนๆไปนิด)ในบางช่วงบางมุมของเหมืองนี้ มีเรื่องดีๆให้ดูและเรียนรู้.อีกมาก.อนาคต อะนางอ คงไม่ต้องพูดถึงหวังก็คงได้แค่หวังฝันก็ฝันไป..สิ่งหนึ่งคอยย้ำเตือนและบอกผมอยู่ประจำคือ ยามใดก็แล้วแต่ ที่หันหน้าไปปรึกษาใครไม่ได้วันที่ใครหน้าไหนก็ช่วยอะไรเราไม่ได้ที่ปรึกษาที่ดีทีสุดก็คือ ตัวเอง..
และนั้นก็เป็นอีกบทเรียนใหญ่ในชีวิตหนึ่งของผม..ที่ผมต้องเรียนและทำความใจอีกนานโข.ก้อนหินก้อนเล็กๆเป็นเหมือนครูคนหนึ่ง หากมองแค่ตาไม่ต้องใช้ความคิดอะไรมากหินก้อนหนึ่ง ก็ไม่ได้มีประโยชน์อะไร ทว่าที่นี้หินก้อนหนึ่งมีค่ามหาศาลเลยที่เดียว เหล็กแท่งหนึ่งหรือแม้กระทั้งน็อตปะแจ มันสอนผมอยู่ทุกวัน..และนั้นจะไม่มีประโยชน์อะไรเลย..ถ้ารู้แล้ว..ไม่ทำ ปล่อยมันไป.สิ่งที่ว่ารู้ ว่าเข้าใจถ่องแท้จริงๆ มันก็ไม่ได้มีประโยชน์ อะไรเลย สู้แล้วไม่รู้อะไรเลย ดีซะกว่า (น้าจิต)
สุดท้ายนี้ต้อง ขอขอบคุณ ลุงๆน้าๆพี่ๆทุกคน ที่คอยบอกให้กำลังใจผมมาตลอด ขอบคุณจริงๆครับ..
:ผิดพลาดประการใดต้องขออภัยมา ณ ที่นี้ด้วย นะครับ

วันอาทิตย์ที่ 19 ธันวาคม พ.ศ. 2553