Avatar billede flashit Nybegynder
04. november 2003 - 16:47 Der er 5 kommentarer og
1 løsning

Stack spg.

Hej E
Er her en som ved om man kan læse og fjerne en post et tilfældigt sted i en stack og fjerne denne fra stacken.
Man kan læse og fjerne den øverste med POP kommandoen, men hvis det er ikke lige det jeg vil.
Avatar billede arne_v Ekspert
04. november 2003 - 17:04 #1
Det kan man ikke.
Avatar billede arne_v Ekspert
04. november 2003 - 17:06 #2
Brug en ArrayList i.s.f. der kan du nemt push til enden, remove
fra enden *og* remove midt i.
Avatar billede flashit Nybegynder
04. november 2003 - 17:56 #3
OK arne_V.
Kan du komme med et eksempel :-)
Avatar billede arne_v Ekspert
04. november 2003 - 18:41 #4
Eksempel:

Imports System
Imports System.Collections

Public Class MyStack
    Private Dim list As ArrayList = new ArrayList()
    Public Sub Push(v As String)
        list.Add(v)
    End Sub
    Public Function Pop() As String
        Pop = list.Item(list.Count - 1)
        list.RemoveAt(list.Count - 1)
    End Function
    Public Function Peek() As String
        Peek = list.Item(list.Count - 1)
    End Function
    Public Function MidRemove(ix As Integer) As String
        MidRemove = list.Item(ix)
        list.RemoveAt(ix)
    End Function
End Class

Module Main
    Sub Main()
        Dim stack As MyStack = new MyStack()
        stack.push("a")
        stack.push("bb")
        stack.push("ccc")
        stack.push("dddd")
        Console.WriteLine(stack.MidRemove(0))
        Console.WriteLine(stack.Peek())
        Console.WriteLine(stack.Peek())
        Console.WriteLine(stack.Pop())
        Console.WriteLine(stack.Pop())
        Console.WriteLine(stack.Pop())
    End Sub
End Module
Avatar billede arne_v Ekspert
04. november 2003 - 18:41 #5
Det er muligt at det kan laves fixere, men det illustrerer brug
af ArrayList som en lidt mere fleksibel Stack.
Avatar billede flashit Nybegynder
04. november 2003 - 20:35 #6
Mange tak. Det gav en del at tænke over :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester