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.