คำถามติดแท็ก stacks

1
มีโครงสร้างข้อมูล 'สตริงสแต็ค' ที่สนับสนุนการดำเนินงานของสตริงเหล่านี้หรือไม่
ฉันกำลังมองหาโครงสร้างข้อมูลที่เก็บชุดสตริงไว้ในชุดอักขระสามารถทำการดำเนินการต่อไปนี้ได้ เราแสดงว่าเป็นโครงสร้างข้อมูลการจัดเก็บชุดของสตริงSD ( S ) SΣΣ\SigmaD (S)D(S)\mathcal{D}(S)SSS Add-Prefix-Setบน : กำหนดชุดของ (อาจว่างเปล่า) สตริงซึ่งขนาดถูก จำกัด ด้วยค่าคงที่และความยาวสตริงถูก จำกัด โดยค่าคงที่ส่งคืน\}) ทั้งสองนี้คง bounding มีทั่วโลก: พวกเขาเป็นเหมือนกันสำหรับปัจจัยการผลิตทั้งหมดTT D ( { t s | t ∈ T , s ∈ S } ) TD (S)D(S)\mathcal{D}(S)TTTD ({ts | t∈T , s ∈ S} )D({ts | t∈T,s∈S})\mathcal{D}( \{ t s\ …


6
วิธีการใช้สองกองในหนึ่งแถว?
ฉันต้องการเริ่มด้วยการบอกว่านี่ไม่ใช่คำถามทำการบ้าน ฉันกำลังอ่านรู้เบื้องต้นเกี่ยวกับอัลกอริทึม - ข้อความ CLRS ที่มีชื่อเสียงที่จะกลายเป็นโปรแกรมเมอร์ที่ดีขึ้น ฉันพยายามที่จะแก้ปัญหาและการออกกำลังกายที่ได้รับในหนังสือด้วยตัวเอง ฉันพยายามที่จะแก้ปัญหาการออกกำลังกาย 10.1-2จากบทที่ 10 โครงสร้างข้อมูลพื้นฐานจาก CLRS Second Edition นี่คือสิ่งที่รัฐ: อธิบายวิธีการใช้สองกองในหนึ่งอาร์เรย์[1..n]ในลักษณะที่ไม่สแต็คล้นเว้นแต่จำนวนรวมขององค์ประกอบทั้งในกองด้วยกันคือn การผลักดันการดำเนินงานและ POP ควรทำงานในO (1)เวลา ทางออกที่ฉันเกิดขึ้นจนถึงตอนนี้คือ: ให้อาร์เรย์[1..n]ใช้สองกอง: S1 [1..i]และS2 [i..n] สำหรับการดำเนินการPUSH-S1และPUSH-S2หากสแต็ค 'เต็ม' จากนั้นเริ่มต้นการผลักองค์ประกอบเข้าสู่สแต็กอื่น ๆ (เช่นถ้าสแต็คS1เต็มเมื่อองค์ประกอบใหม่พยายามที่จะผลักดันเข้าไปแล้วผลักองค์ประกอบนั้นเข้าไป stack S2และในทางกลับกัน) ปัญหาของวิธีนี้คือฉันจะไม่สามารถใช้POP-S1หรือPOP-S2ได้อย่างน่าเชื่อถือเนื่องจากไม่มีวิธีการ 'จดจำ' องค์ประกอบใดที่เป็นของสแต็กใด หากองค์ประกอบของสแต็กเป็นคู่(คีย์, ค่า)คีย์คือหมายเลขสแต็กจากนั้นจึงปรากฏองค์ประกอบที่ฉันจะต้องค้นหาในกรณีที่เลวร้ายที่สุดฉันหรือ (ni) ครั้ง - ซึ่งจะเป็นO (n ) (รู้สึกอิสระที่จะถูกต้องฉันหากฉันผิดที่นี่) ซึ่งจะไม่เป็นO (1) ฉันต่อสู้กับคำถามมาระยะหนึ่งแล้ว ฉันกำลังติดตามใช่ไหม? ใครสามารถให้คำแนะนำที่เป็นไปได้สำหรับการแก้ไขปัญหานี้ได้บ้าง โดยทั่วไปแล้วฉันควร …

2
เป็นไปได้หรือไม่ที่ภาษาการเขียนโปรแกรมแบบกองซ้อนพร้อมกัน?
ฉันได้อ่านเกี่ยวกับภาษาการเขียนโปรแกรมแบบกองซ้อนเช่นFORTHและCatและดูเหมือนว่าด้วยลักษณะของพวกเขาพวกเขาสามารถดำเนินการได้ครั้งละหนึ่งการกระทำโดยไม่คำนึงถึงกระบวนทัศน์ของพวกเขา (FORTH มีความจำเป็นในขณะที่ Cat ทำงานได้) ภาษาที่จำเป็นจะแก้ไขสแต็กและภาษาที่ใช้งานได้ดีเช่นJoyจะส่งคืนสแต็กใหม่ แต่ประเด็นก็คือสแต็กเดียวเท่านั้นที่ใช้ในแต่ละครั้ง ดังนั้นภาษาการเขียนโปรแกรมแบบกองซ้อนสามารถพร้อมกันได้หรือไม่ พวกเขาสามารถบรรลุการทำงานพร้อมกันโดยใช้หลายกองในเวลาเดียวกันหรือบางสิ่งบางอย่างเหมือนกันหรือไม่ เป็นไปได้หรือไม่ที่จะใช้การประเมินผลแบบขี้เกียจในภาษาการเขียนโปรแกรมแบบกองซ้อน? โปรดแก้ไขฉันหากฉันเข้าใจผิดเกี่ยวกับภาษาและแนวคิดที่กล่าวถึงข้างต้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.