Lista jednokierunkowa samo organizująca się.

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?

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.

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