Selasa, 24 Maret 2015

Algoritma Sisip Tengah untuk Single Linked List

Algoritma Sisip Tengah untuk Single Linked List



Procedure sisip_tengah_single(Input  elemen : tipedata, I/O  awal, akhir : nama_pointer)
{I.S. : data yang akan disisipkan (elemen), pointer penunjuk awal dan pointer penunjuk akhir sudah terdifinisi}
{F.S. : menghasilkan satu simpul yang disisipkan di tengah pada single linked list}
Kamus :
            baru,bantu : nama_pointer
            ketemu : boolean
            datasisip : tipedata
  
Algoritma :
            If (awal = nil)
              Then
                        Alloc(baru)
                        baru↑.info ß elemen
                        baru↑.next ß nil
                        awal ß baru
                        akhir ß baru
              Else
                        Input(datasisip)
                        bantu ß awal
                        ketemu ß false
                        While (not ketemu and bantu ≠ nil) do
                                    If (datasisip = bantu↑.info)
                                      Then
                                                ketemu ß true
                                      Else
                                                bantu ß bantu↑.next
                                    EndIf
                        EndWhile
                        If (ketemu)
                          Then
                                    Alloc(baru)
                                    baru↑.info ß elemen
                                    If (bantu = akhir)
                                      Then
                                                sisip_belakang_single(elemen,awal,akhir)
                                      Else
                                                baru↑.next ß bantu↑.next
                                                bantu↑.next ß baru
                                    EndIf
                          Else
                                    Output(“Data yang akan disisipkan tidak ada”);
                        EndIf
            EndIf
EndProcedure




0 komentar:

Posting Komentar