Lista jednokierunkowa samo organizująca się.

Wielki Orzeł
2016-01-04 11:47
Wielki Orzeł
0

Witam, chciałbym się zapytać w jak można zrobić listę jednokierunkową, która jest samo organizująca?

Elementy listy to litery alfabetu np. A, C, D. Jak dodam nowy element powiedzmy B to lista będzie ułożona zgodnie z kolejnością alfabetu.

program lista;

type
    pElement = ^TElement;
    TElement = record
        litera:char;
        next:pElement;
    end;

{PROCEDURY DO LISTY}
procedure wyswietl_liste(p:pElement);
begin
    while p <> nil do
    begin
        writeln(p^.litera);
        p := p^.next;
    end;
end;

procedure dodaj_na_poczatek(var glowa:pElement; dane:char);
var
    p:pElement;
begin
    new(p);
    p^.litera := dane;
    p^.next := glowa;
    glowa := p;
end;

{GLOWNY PROGRAM}
var
    alfabet:pElement;

begin
    alfabet := nil;
    dodaj_na_poczatek(alfabet, 'a');
    dodaj_na_poczatek(alfabet, 'd');
    dodaj_na_poczatek(alfabet, 'c');
    dodaj_na_poczatek(alfabet, 'b');
    wyswietl_liste(alfabet);
    readln;
end.

Co należy dopisać w procedurze wyświetlania? Jakiś warunek?

Pozostało 580 znaków

2016-01-04 11:56

Rejestracja: 14 lat temu

Ostatnio: 3 dni temu

0
  1. Dla listy takie podejście jest całkiem bezsensowne, już lepiej drzewo binarne.
  2. Lecisz po liście jak znajdujesz większy element to wstawiasz przed nim, jeżeli nic nie znajdziesz to wstawiasz na koniec.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0