บทความนี้ไม่มีจาก |
กองซ้อน หรือ สแต็ก (อังกฤษ: Stack) หมายถึง แบบชนิดข้อมูลนามธรรมที่มีลักษณะการเรียงลำดับข้อมูล ในการเข้า-ออกในลักษณะเข้าก่อนออกทีหลัง FILO (First In Last Out) กล่าวคือข้อมูลที่เข้าใหม่ ๆ จะได้ออกก่อน คล้ายกองที่ทับถมซึ่งสิ่งที่เข้ามาใหม่จะอยู่ด้านบน ๆ จึงเรียกว่า กองซ้อน (stack) กองซ้อนมีการดำเนินการพื้นฐานเพียง 3 อย่าง ได้แก่ push, pop และ top กองซ้อน โดยที่การ push คือการใส่ข้อมูลลงไปในกองซ้อน ซึ่งจะกระทำได้หากกองซ้อนยังว่างอยู่ หากไม่มีที่ว่างในกองซ้อนเหลืออยู่หรือกองซ้อนเต็ม กองซ้อนนั้นจะอยู่ในสภาวะล้นหรือมากเกินเก็บ (overflow) การ pop คือการนำข้อมูลออกจากส่วนบนสุดของกองซ้อน นอกจากนี้ การ pop จะเผยข้อมูลที่ถูกผิดอยู่ก่อนหน้า หรือทำให้กองซ้อนว่างได้ แต่ถ้ากองซ้อนนั้นว่างอยู่แล้ว การ pop จะทำให้อยู่ในสภาวะน้อยเกินเก็บ (underflow) (นั่นคือ ไม่มีข้อมูลให้นำออกแล้ว) การ top กองซ้อน จะดึงข้อมูลที่อยู่บนสุดและส่งค่านั้นให้ผู้ใช้โดยที่ไม่ได้ลบทิ้งไป การ top กองซ้อนอาจทำให้กองซ้อนอยู่ในสภาวะน้อยเกินเก็บได้เช่นกัน หากกองซ้อนว่างอยู่แล้ว
กองซ้อน | |
---|---|
ความสำคัญของลำดับ | FILO (First In Last Out) |
การซ้ำกันของสมาชิก | อนุญาตให้ซ้ำกันได้ |
เวลาที่ใช้ในการเข้าถึง | PUSH/POP |
กองซ้อนจึงเป็นวิธีการจัดการเข้า-ออกของข้อมูลอีกแบบหนึ่ง เป็นโครงสร้างข้อมูลที่นำมาใช้ในการทำงานของโปรแกรมคอมพิวเตอร์หลายประการ อาทิการสร้าง subroutine การเรียงลำดับนิพจน์ ฯลฯ
จุดเด่นของกองซ้อน
กองซ้อนมีจุดเด่นในการจัดการการเข้า-ออกของข้อมูล ใช้เก็บข้อมูลที่ต้องการจัดเรียงเป็นระบบ โดยพิจารณาข้อมูลที่มาใหม่ๆก่อน จึงทำให้สะดวกต่อการจัดการข้อมูลซึ่งต้องการเรียงลำดับใหม่ หรือการย้อนกลับไปจากข้อมูลใหม่ไปข้อมูลเก่า เช่น subroutine, การเรียงลำดับนิพจน์
บริการที่มักจะมี
- การเก็บเข้ากองซ้อน (Push)
- การดึงข้อมูลบนสุดของกองซ้อน (Pop)
- การดูข้อมูลบนสุดของกองซ้อน (Top)
- ทำกองซ้อนให้ว่าง ตรวจสอบความว่างของกองซ้อน (Empty)
ความเร็วที่ใช้ในการทำงาน
การทำงานของกองซ้อนนั้นไม่ซับซ้อน เนื่องจากไม่ต้องมีการไล่พิจารณาสมาชิกทุกตัว เป็นเพียงแต่การพิจารณาข้อมูลบนสุดของกองซ้อน จึงทำให้ความเร็วในการทำงานของกองซ้อนเป็นค่าคงที่ (O(1))
วิธีการสร้างกองซ้อน
การสร้างกองซ้อนอาจใช้แถวลำดับประกอบกับ ที่เก็บดัชนีของข้อมูลบนสุดของกองซ้อน (Stack Pointer หรือ Top of Stack) หรือใช้รายการโยงโดยการเก็บข้อมูลที่ใหม่ๆบนตัวแรกสุดของรายการ
การเก็บข้อมูลใหม่เข้าในกองซ้อนเรียกว่า PUSH ทำได้โดยการเพิ่มค่าดัชนีบนสุดของกองซ้อนไปหนึ่ง (increment) และเก็บข้อมูลใหม่ไว้ในดัชนีนั้น หรือเพิ่มเข้าไปที่ตัวแรกสุดของรายการโยง การนำข้อมูลตัวบนสุดของกองซ้อนออกเรียกว่า POP ทำได้โดยการคืนค่าข้อมูลที่เก็บไว้ในแถวลำดับ ดัชนีบนสุดและลดค่าดัชนีบนสุดลงมาอีกหนึ่ง (decrement) หรือเอาตัวแรกสุดของรายการโยงออก สำหรับ การหาตัวบนสุด (Top) นั้นก็ได้มาจากการคืนค่าข้อมูลในดัชนีบนสุดหรือข้อมูลตัวแรกสุดของรายการโยงนั้นเอง
ดูเพิ่ม
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamniimmikarxangxingcakaehlngthimaidkrunachwyprbprungbthkhwamni odyephimkarxangxingaehlngthimathinaechuxthux enuxkhwamthiimmiaehlngthimaxacthukkhdkhanhruxlbxxk eriynruwacanasaraemaebbnixxkidxyangiraelaemuxir kxngsxn hrux saetk xngkvs Stack hmaythung aebbchnidkhxmulnamthrrmthimilksnakareriyngladbkhxmul inkarekha xxkinlksnaekhakxnxxkthihlng FILO First In Last Out klawkhuxkhxmulthiekhaihm caidxxkkxn khlaykxngthithbthmsungsingthiekhamaihmcaxyudanbn cungeriykwa kxngsxn stack kxngsxnmikardaeninkarphunthanephiyng 3 xyang idaek push pop aela top kxngsxn odythikar push khuxkariskhxmullngipinkxngsxn sungcakrathaidhakkxngsxnyngwangxyu hakimmithiwanginkxngsxnehluxxyuhruxkxngsxnetm kxngsxnnncaxyuinsphawalnhruxmakekinekb overflow kar pop khuxkarnakhxmulxxkcakswnbnsudkhxngkxngsxn nxkcakni kar pop caephykhxmulthithukphidxyukxnhna hruxthaihkxngsxnwangid aetthakxngsxnnnwangxyuaelw kar pop cathaihxyuinsphawanxyekinekb underflow nnkhux immikhxmulihnaxxkaelw kar top kxngsxn cadungkhxmulthixyubnsudaelasngkhannihphuichodythiimidlbthingip kar top kxngsxnxacthaihkxngsxnxyuinsphawanxyekinekbidechnkn hakkxngsxnwangxyuaelwkxngsxnkhwamsakhykhxngladbFILO First In Last Out karsaknkhxngsmachikxnuyatihsaknidewlathiichinkarekhathungPUSH POPehmuxnkbkarwangcansxnkn wangephimhruxykxxkthaidechphaacanbnsudethann kxngsxncungepnwithikarcdkarekha xxkkhxngkhxmulxikaebbhnung epnokhrngsrangkhxmulthinamaichinkarthangankhxngopraekrmkhxmphiwetxrhlayprakar xathikarsrang subroutine kareriyngladbniphcn lcudednkhxngkxngsxnkxngsxnmicudedninkarcdkarkarekha xxkkhxngkhxmul ichekbkhxmulthitxngkarcderiyngepnrabb odyphicarnakhxmulthimaihmkxn cungthaihsadwktxkarcdkarkhxmulsungtxngkareriyngladbihm hruxkaryxnklbipcakkhxmulihmipkhxmuleka echn subroutine kareriyngladbniphcnbrikarthimkcamikarekbekhakxngsxn Push kardungkhxmulbnsudkhxngkxngsxn Pop kardukhxmulbnsudkhxngkxngsxn Top thakxngsxnihwang trwcsxbkhwamwangkhxngkxngsxn Empty khwamerwthiichinkarthangankarthangankhxngkxngsxnnnimsbsxn enuxngcakimtxngmikarilphicarnasmachikthuktw epnephiyngaetkarphicarnakhxmulbnsudkhxngkxngsxn cungthaihkhwamerwinkarthangankhxngkxngsxnepnkhakhngthi O 1 withikarsrangkxngsxnkarsrangkxngsxnxacichaethwladbprakxbkb thiekbdchnikhxngkhxmulbnsudkhxngkxngsxn Stack Pointer hrux Top of Stack hruxichraykaroyngodykarekbkhxmulthiihmbntwaerksudkhxngraykar karekbkhxmulihmekhainkxngsxneriykwa PUSH thaidodykarephimkhadchnibnsudkhxngkxngsxniphnung increment aelaekbkhxmulihmiwindchninn hruxephimekhaipthitwaerksudkhxngraykaroyng karnakhxmultwbnsudkhxngkxngsxnxxkeriykwa POP thaidodykarkhunkhakhxmulthiekbiwinaethwladb dchnibnsudaelaldkhadchnibnsudlngmaxikhnung decrement hruxexatwaerksudkhxngraykaroyngxxk sahrb karhatwbnsud Top nnkidmacakkarkhunkhakhxmulindchnibnsudhruxkhxmultwaerksudkhxngraykaroyngnnexngduephimaethwkhxy aethwkhxysxnghna