algorytm.org

Lista

Praca
Interesuje Cię praca przy weryfikacji oprogramowania do samolotów?
Sprawdź to!
Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Lista
Ocena użytkowników:***** / 22
SłabyŚwietny 
Wpisany przez Michał Knasiecki, 16 sierpnia 2005 18:36

Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element można usunąć oraz dodać w dowolnym miejscu. Pierwszy i ostatni element listy nazywamy końcami listy. Szczególnym przypadkiem listy może być stos (gdy pobrać, odczytać i wstawić element można tylko na końcu listy) lub kolejka (pobrać i odczytać element można tylko na początku listy, a dodać na końcu).
Listy mogą być posortowane (najmniejszy element jest w korzeniu). Rozważmy przypadek jednokierunkowej listy posortowanej.
Aby dodać element do listy posortowanej należy sprawdzić, w którym miejscu powienien się on znajdować. Sprawdzamy od korzenia, schodząc w dół, jeśli element, który chcemy dodać jest większy od badanego węzła i mniejszy od jego następnika, to należy umieścić go między nimi. Musimy więc ustawić wskaźnik aktualnego węzła na dodawany element, a wskaźnik tego elementu na następnik. Ponieważ jest to lista jednokierunkowa, przeszukiwanie jej należy zawsze zaczynać od korzenia. Dodając więc pierwszy element do pustej listy należy zapamiętać jego wskaźnik, by później móc się do niego przenieść.
W przeciwieństwie do stosu i kolejki listy mogą zawierać dwa wskaźniki. Takie listy nazywamy dwukierunkowymi, poruszać się możemy w niej w obydwu kierunkach, co przyspiesza wszystkie operacje. Oto schemat listy dwukierunkowej:
Lista dwukierunkowa

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Paweł SzulcC#Lista jednokierunkowa niesortowana
.cs
.cs
***** / 2
MarianC/C++C++ (lista jednokierunkowa)
.cpp
.cpp
***** / 31
Emil HotkowskiC/C++C++ (lista dwukierunkowa)
.cpp
.cpp
***** / 17
Michał KnasieckiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 6
Dominik GoździukJavaLista dwustronna dwukierunkowa
.java
.java
***** / 10
Marek RynarzewskiPhpLista dwukierunkowa z wartownikiem
.php
.php
***** / 1
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 30 sierpnia 2012 20:01
Komentarze
photo
-1 # AdaMTT 2012-02-03 10:39
a lista dwukierunkowa w c++?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # emil3566 2012-02-11 16:17
Postaram się na jutro zrobić kolejke dwukieunkową w C++ :) cierpliwości :)
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+4 # Milosz 2012-06-14 18:06
Hmmm brakuje mi listy w zwyklym C : (
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Xs2 2013-06-04 21:06
Takie listy nazywamy dwukierunkowymi , poruszać się możemy w niej w obydwu kierunkach, co przyspiesza wszystkie operacje. Oto schemat listy dwukierunkowej: push_back, append działa tak samo szybko w czasie stałym jeżli mam pomocnicze wskaźniki na początek i koniec, jednie pop_back może dziłać wolniej w listach jedno kierunkowych.
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-1 # Michał1 2013-11-20 09:28
Nie ma nikt może prostego przykladu tworzenia listy na tablicach w C#?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+5 # iks 2014-06-12 07:56
Mógłby ktoś dodać wszystkie implementacje listy w klasycznym C?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Patryk 2015-04-04 19:55
Można prosić o przykład listy cyklicznej?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Ixi 2016-01-09 21:23
Proszę o listę dwukierunkową w c#
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz