Różnica między tablicą a połączoną listą
Zawartość
- Wykres porównania
- Definicja tablicy
- Przyjrzyjmy się niektórym koncepcjom, które należy zapamiętać o tablicach:
- Operacje wykonywane na tablicach to:
- Przykład
- Definicja listy połączonej
- Operacje wykonywane na połączonej liście to:
- Przykład
- Wniosek
Główna różnica między Szyk i Połączona lista w odniesieniu do ich struktury. Tablice są na podstawie indeksu struktura danych, w której każdy element jest powiązany z indeksem. Z drugiej strony, lista połączona polega na referencje gdzie każdy węzeł składa się z danych i odniesień do poprzedniego i następnego elementu.
Zasadniczo tablica to zestaw podobnych obiektów danych przechowywanych w sekwencyjnych lokalizacjach pamięci pod wspólnym nagłówkiem lub nazwą zmiennej.
Podczas gdy połączona lista jest strukturą danych, która zawiera sekwencję elementów, w których każdy element jest połączony z kolejnym elementem. W elemencie połączonej listy znajdują się dwa pola. Jednym z nich jest pole danych, a drugim pole łączy, pole danych zawiera rzeczywistą wartość do przechowywania i przetwarzania. Ponadto w polu linku znajduje się adres następnego elementu danych na połączonej liście. Adres używany do uzyskania dostępu do określonego węzła jest znany jako wskaźnik.
Inną znaczącą różnicą między tablicą a listą połączoną jest to, że tablica ma ustalony rozmiar i musi zostać zadeklarowana wcześniej, ale lista połączona nie jest ograniczona do rozmiaru, rozwijania i kurczenia się podczas wykonywania.
- Wykres porównania
- Definicja
- Kluczowe różnice
- Wniosek
Wykres porównania
Podstawa do porównania | Szyk | Połączona lista |
---|---|---|
Podstawowy | Jest to spójny zestaw ustalonej liczby elementów danych. | Jest to uporządkowany zestaw zawierający zmienną liczbę elementów danych. |
Rozmiar | Określone podczas deklaracji. | Nie trzeba określać; rosną i kurczą się podczas egzekucji. |
Przydział pamięci | Lokalizacja elementu jest przydzielana w czasie kompilacji. | Pozycja elementu jest przypisywana w czasie wykonywania. |
Kolejność elementów | Przechowywane kolejno | Przechowywany losowo |
Dostęp do elementu | Dostęp bezpośredni lub losowy, tj. Określ indeks tablicy lub indeks dolny. | Dostęp sekwencyjny, tzn. Przejście przez pierwszy węzeł na liście za pomocą wskaźnika. |
Wstawianie i usuwanie elementu | Stosunkowo powoli, ponieważ wymagana jest zmiana biegów. | Łatwiej, szybciej i wydajniej. |
Badawczy | Wyszukiwanie binarne i wyszukiwanie liniowe | wyszukiwanie liniowe |
Wymagana pamięć | mniej | Więcej |
Wykorzystanie pamięci | Nieskuteczny | Wydajny |
Definicja tablicy
Tablica jest zdefiniowana jako zbiór określonej liczby jednorodnych elementów lub elementów danych. Oznacza to, że tablica może zawierać tylko jeden typ danych: wszystkie liczby całkowite, wszystkie liczby zmiennoprzecinkowe lub wszystkie znaki. Deklaracja tablicy jest następująca:
int a;
Gdzie int określa typ danych lub typ elementów składowych tablic. „A” to nazwa tablicy, a liczba określona w nawiasach kwadratowych to liczba elementów, które tablica może przechowywać, jest to również nazywane rozmiarem lub długością tablicy.
Przyjrzyjmy się niektórym koncepcjom, które należy zapamiętać o tablicach:
- Dostęp do poszczególnych elementów tablicy można uzyskać, opisując jej nazwę, a następnie indeks lub indeks dolny (określający położenie elementu w tablicy) w nawiasach kwadratowych. Na przykład, aby pobrać 5. element tablicy, musimy napisać instrukcję a.
- W każdym razie elementy tablicy będą przechowywane w kolejnym miejscu w pamięci.
- Pierwszy element tablicy ma indeks zero. Oznacza to, że pierwszy i ostatni element zostaną określone odpowiednio jako i.
- Liczba elementów, które mogą być przechowywane w tablicy, tj. Rozmiar tablicy lub jej długość jest określona przez następujące równanie:
(górna granica-dolna granica) + 1
Dla powyższej tablicy będzie to (9-0) + 1 = 10. Gdzie 0 to dolna granica tablicy, a 9 to górna granica tablicy. - Tablice mogą być odczytywane lub zapisywane przez pętlę. Jeśli czytamy tablicę jednowymiarową, wymaga ona jednej pętli do odczytu, a drugiej do zapisu (ing) tablicy, na przykład:
za. Do odczytu tablicy
dla (i = 0; i <= 9; i ++)
{scanf („% d”, i a); }
b. Do pisania tablicy
dla (i = 0; i <= 9; i ++)
{f („% d”, a); } - W przypadku tablicy 2-D wymagałoby to dwóch pętli, podobnie tablica n-wymiarowa wymagałaby n pętli.
Operacje wykonywane na tablicach to:
- Tworzenie tablicy
- Przemierzanie tablicy
- Wstawianie nowych elementów
- Usunięcie wymaganych elementów.
- Modyfikacja elementu.
- Scalanie tablic
Przykład
Poniższy program ilustruje odczyt i zapis tablicy.
#zawierać
#zawierać
void main ()
{
int a, ja;
f („Wprowadź tablicę”);
dla (i = 0; i <= 9; i ++)
{
scanf („% d”, i a);
}
f („Wprowadź tablicę”);
dla (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}
Definicja listy połączonej
Lista połączona to szczególna lista niektórych elementów danych powiązanych ze sobą. W tym każdym elemencie wskazuje następny element, który reprezentuje logiczne uporządkowanie. Każdy element nazywa się węzłem, który składa się z dwóch części.
INFO część, która przechowuje informacje oraz POINTER, który wskazuje na następny element. Jak wiadomo do przechowywania adresu, mamy unikalne struktury danych w C zwane wskaźnikami. Dlatego drugie pole listy musi być wskaźnikiem.
Rodzaje połączonych list to: Pojedynczo połączona, Podwójnie połączona lista, Okrągła lista połączona, Okrągła podwójnie połączona lista.
Operacje wykonywane na połączonej liście to:
- kreacja
- Przemierzanie
- Wprowadzenie
- Usunięcie
- Badawczy
- Powiązanie
- Pokaz
Przykład
Poniższy fragment ilustruje tworzenie połączonej listy:
węzeł strukturalny
{
int num;
węzeł stuct * dalej;
}
start = NULL;
void create ()
{
typedef struct node NODE;
NODE * p, * q;
wybór char;
first = NULL;
robić
{
p = (NODE *) malloc (sizeof (NODE));
f („Wprowadź element danych n”);
scanf ("% d", & p -> num);
if (p == NULL)
{
q = start;
while (q -> next! = NULL)
{q = q -> dalej
}
p -> next = q -> next;
q -> = p;
}
jeszcze
{
p -> dalej = start;
start = p;
}
f („Czy chcesz kontynuować (wpisz y lub n)? n”);
scanf („% c” i wybór);
}
while ((wybór == y) || (wybór == Y));
}
- Tablica to struktura danych zawierająca zbiór elementów danych podobnego typu, podczas gdy lista połączona jest uważana za nieprymitywną strukturę danych zawierającą zbiór nieuporządkowanych połączonych elementów zwanych węzłami.
- W tablicy elementy należą do indeksów, tzn. Jeśli chcesz dostać się do czwartego elementu, musisz wpisać nazwę zmiennej wraz z jej indeksem lub lokalizacją w nawiasie kwadratowym.
Jednak na połączonej liście musisz zacząć od głowy i przejść dalej, aż dojdziesz do czwartego elementu. - Dostęp do tablicy elementów jest szybki, a lista połączona zajmuje czas liniowy, więc jest nieco wolniejsza.
- Operacje takie jak wstawianie i usuwanie w tablicach pochłaniają dużo czasu. Z drugiej strony wykonywanie tych operacji na listach połączonych jest szybkie.
- Tablice mają stały rozmiar. W przeciwieństwie do tego, Listy połączone są dynamiczne i elastyczne i mogą rozszerzać i zmniejszać swój rozmiar.
- W tablicy pamięć jest przydzielana podczas kompilacji, natomiast na liście połączonej jest przydzielana podczas wykonywania lub w czasie wykonywania.
- Elementy są przechowywane kolejno w tablicach, a losowo na listach połączonych.
- Wymaganie pamięci jest mniejsze ze względu na faktyczne dane przechowywane w indeksie w tablicy. W przeciwieństwie do tego istnieje potrzeba większej ilości pamięci na połączonych listach ze względu na przechowywanie dodatkowych następnych i poprzednich elementów odniesienia.
- Ponadto wykorzystanie pamięci jest nieefektywne w tablicy. I odwrotnie, wykorzystanie pamięci w macierzy jest wydajne.
Wniosek
Tablice i listy połączone to typy struktur danych, które różnią się budową, metodami dostępu i manipulacji, wymaganiem pamięci i wykorzystaniem. I mają szczególną zaletę i wadę w stosunku do jego wdrożenia. W związku z tym można użyć jednego z nich zgodnie z potrzebą.