Mae staciau yn un o'r strwythurau data sylfaenol yn y gwyddoniaeth gyfrifiadurol. Mae'n bwysig deall sut maen nhw'n gweithio, yn enwedig os ydych chi'n gweithio gyda iaith raglennu fel Ruby. Yn yr erthygl hon, byddwn yn archwilio beth yw staciau, sut maen nhw'n gweithredu, a sut i'w defnyddio yn Ruby. Byddwn hefyd yn rhoi enghreifftiau o god i ddangos sut i greu a defnyddio staciau yn eich rhaglenni.
Mae staciau yn strwythurau data sy'n dilyn y dull "Last In, First Out" (LIFO). Mae hyn yn golygu bod y data a ychwanegir yn gyntaf yn cael ei ddynnu yn olaf. Mae staciau'n teimlo fel tanc o ddirgelion lle mae'r eitem bennaf ar ben y tanc, a'r eitemau eraill yn cael eu gorchuddio. Mae'r ddau weithred sylfaenol ar gyfer staciau yn cynnwys:
Mae staciau'n ddefnyddiol mewn sawl cyd-destun, gan gynnwys:
Mae Ruby yn cynnig dulliau syml i greu staciau. Gallwn ddefnyddio'r dosbarth Array
i greu stac. Dyma enghraifft o sut i wneud hyn:
class Stack def initialize @stack = [] end def push(item) @stack.push(item) end def pop @stack.pop end def peek @stack.last end def empty? @stack.empty? end def size @stack.size end end
Yn y cod uchod, rydym wedi creu dosbarth o'r enw Stack
sy'n cynnwys dulliau i ychwanegu, tynnu, a gwirio'r eitemau yn y stac.
Gadewch i ni edrych ar sut i ddefnyddio'r dosbarth Stack
a grëwyd gennym:
# Creu stac my_stack = Stack.new # Ychwanegu eitemau i'r stac my_stack.push(1) my_stack.push(2) my_stack.push(3) # Gwirio'r eitem bennaf puts "Eitem bennaf: #{my_stack.peek}" # Dylai ddangos 3 # Tynnu eitem o'r stac puts "Tynnu eitem: #{my_stack.pop}" # Dylai ddangos 3 puts "Eitem bennaf ar ôl pop: #{my_stack.peek}" # Dylai ddangos 2 # Gwirio os yw'r stac yn wag puts "A yw'r stac yn wag? #{my_stack.empty?}" # Dylai ddangos false # Gwirio maint y stac puts "Maint y stac: #{my_stack.size}" # Dylai ddangos 2
Mae'r enghraifft hon yn dangos sut i greu stac, ychwanegu eitemau, tynnu eitemau, a gwirio'r maint a'r eitem bennaf.
Mae staciau'n cael eu defnyddio mewn sawl algorithm. Dyma rai enghreifftiau o ble gallwn eu defnyddio:
Dyma enghraifft o sut i ddefnyddio staciau i adfer gweithrediadau:
class UndoStack def initialize @stack = Stack.new end def perform_action(action) @stack.push(action) puts "Gweithrediad: #{action} wedi'i berfformio." end def undo if !@stack.empty? action = @stack.pop puts "Gweithrediad: #{action} wedi'i adfer." else puts "Nid oes unrhyw weithrediadau i'w adfer." end end end # Defnyddio'r UndoStack undo_stack = UndoStack.new undo_stack.perform_action("Gosod y lliw") undo_stack.perform_action("Cynyddu'r maint") undo_stack.undo undo_stack.undo undo_stack.undo
Mae'r enghraifft hon yn dangos sut i ddefnyddio staciau i gadw cofrestr o weithrediadau a'u adfer pan fo angen.
Mae staciau yn strwythurau data pwysig yn y gwyddoniaeth gyfrifiadurol. Mae'n hawdd eu creu a'u defnyddio yn Ruby, gan eu gwneud yn ddull effeithiol ar gyfer rheoli data. Trwy ddeall sut i ddefnyddio staciau, gallwch wella eich sgiliau rhaglenni a datblygu algorithmau mwy cymhleth.
Gobeithio bod yr erthygl hon wedi rhoi gwybodaeth fanwl i chi am staciau a sut i'w defnyddio yn Ruby. Peidiwch ag oedi i archwilio mwy o fanylion a chymhwyso'r wybodaeth hon yn eich prosiectau rhaglenni!
© 2024 RailsInsights. All rights reserved.