Різниця між масивом та пов'язаним списком

Автор: Laura McKinney
Дата Створення: 3 Квітень 2021
Дата Оновлення: 8 Травень 2024
Anonim
Різниця між масивом та пов'язаним списком - Технологія
Різниця між масивом та пов'язаним списком - Технологія

Зміст


Основна різниця між Масив і Пов'язаний список щодо їх структури. Масиви є на основі індексу структура даних, де кожен елемент пов'язаний з індексом. З іншого боку, пов'язаний список покладається на посилання де кожен вузол складається з даних та посилань на попередній та наступний елемент.

В основному масив - це набір подібних об'єктів даних, що зберігаються в послідовних місцях пам'яті під загальним заголовком або ім'ям змінної.

Хоча пов'язаний список - це структура даних, яка містить послідовність елементів, де кожен елемент пов'язаний зі своїм наступним елементом. У елементі пов'язаного списку є два поля. Одне - це поле Дані, а інше - поле зв’язку. Поле даних містить фактичне значення, яке потрібно зберігати та обробляти. Крім того, поле посилання містить адресу наступного елемента даних у зв'язаному списку. Адреса, що використовується для доступу до певного вузла, відома як покажчик.


Ще одна істотна відмінність між масивом і пов'язаним списком полягає в тому, що масив має фіксований розмір і його потрібно оголосити попередньо, але пов'язаний список не обмежується розміром, а розгортається та стискається під час виконання.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняМасивПов'язаний список
ОсновніЦе послідовний набір фіксованої кількості елементів даних.Це впорядкований набір, що містить змінну кількість елементів даних.
РозмірВказується під час декларації.Не потрібно вказувати; зростати і скорочуватися під час виконання.
Розподіл зберігання Місце розташування елементів розподіляється під час компіляції.Позиція елемента призначається під час виконання.
Порядок елементів Зберігається послідовно Зберігається випадковим чином
Доступ до елементаПрямий або випадковий доступ, тобто вкажіть індекс масиву чи індекс.Послідовний доступ, тобто прохід, починаючи з першого вузла в списку вказівником.
Вставлення та видалення елементаПовільно, оскільки потрібне зміщення.Легше, швидше та ефективніше.
Пошук Двійковий пошук та лінійний пошуклінійний пошук
Потрібна пам'ятьменше Більше
Використання пам'ятіНеефективнийЕфективний


Визначення масиву

Масив визначається як набір певної кількості однорідних елементів або елементів даних. Це означає, що масив може містити лише один тип даних, або всі цілі числа, всі числа з плаваючою комою або всі символи. Декларація масиву така:
int a;
Де int вказує тип даних або тип елементів зберігає масив елементів. "A" - це ім'я масиву, і число, вказане всередині квадратних дужок, - це кількість елементів, які масив може зберігати, це також називається розміром або довжиною масиву.

Давайте розглянемо деякі поняття, які слід пам’ятати про масиви:

  • Доступ до окремих елементів масиву можна отримати шляхом опису імені масиву, а потім індексу або індексу (визначення місця розташування елемента в масиві) всередині квадратних дужок. Наприклад, щоб отримати 5-й елемент масиву, нам потрібно написати операцію a.
  • У будь-якому випадку елементи масиву будуть зберігатися в послідовній пам'яті.
  • Найперший елемент масиву має індекс нуль. Це означає, що перший і останній елемент будуть вказані як a, так і відповідно.
  • Кількість елементів, які можуть бути збережені в масиві, тобто розмір масиву або його довжина задається наступним рівнянням:
    (верхня межа - нижня межа) + 1
    Для вищевказаного масиву було б (9-0) + 1 = 10. Де 0 - нижня межа масиву, а 9 - верхня межа масиву.
  • Масиви можна читати або записувати через цикл. Якщо ми читаємо одновимірний масив, йому потрібен один цикл для читання, а інший - для запису (ing) масиву, наприклад:
    а. Для читання масиву
    для (i = 0; i <= 9; i ++)
    {scanf ("% d", & a); }
    б. Для запису масиву
    для (i = 0; i <= 9; i ++)
    {f ("% d", а); }
  • У випадку двовимірного масиву знадобиться дві петлі, і аналогічно n-мірному масиву знадобиться n циклів.

Операції, що виконуються на масивах:

  1. Створення масиву
  2. Проходження масиву
  3. Вставлення нових елементів
  4. Видалення необхідних елементів.
  5. Модифікація елемента.
  6. Об’єднання масивів

Приклад

Наступна програма ілюструє читання та запис масиву.

#включати
#включати
недійсний головний ()
{
int a, i;
f ("Введіть масив");
для (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("Введіть масив");
для (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}

Визначення пов'язаного списку

Зв'язаний список - це певний перелік деяких елементів даних, пов'язаних один з одним. У цьому кожен елемент вказує на наступний елемент, який представляє логічне впорядкування. Кожен елемент називається вузлом, який має дві частини.

Частина INFO, яка зберігає інформацію, і POINTER, який вказує на наступний елемент. Як ви знаєте, для зберігання адреси ми маємо унікальну структуру даних у C, що називається покажчиками. Отже, друге поле списку повинно бути типом вказівника.

Типи пов'язаних списків - це одиночно пов'язаний список, подвійно пов'язаний список, круговий зв'язаний список, круговий подвійний зв'язаний список.

Операції, що виконуються у зв’язаному списку:

  1. Створення
  2. Проїзд
  3. Введення
  4. Видалення
  5. Пошук
  6. Сполучення
  7. Дисплей

Приклад

Наступний фрагмент ілюструє створення пов'язаного списку:

структурний вузол
{
int num;
штрих вузол * поруч;
}
старт = NULL;
void create ()
{
typedef struct node NODE;
NODE * p, * q;
вибір вибору;
перший = NULL;
робити
{
p = (NODE *) malloc (sizeof (NODE));
f ("Введіть елемент даних n");
scanf ("% d", & p -> число);
якщо (p == NULL)
{
q = початок;
while (q -> next! = NULL)
{q = q -> далі
}
p -> next = q -> наступний;
q -> = p;
}
ще
{
p -> наступний = початок;
старт = р;
}
f ("Ви хочете продовжити (введіть y чи n)? n");
scanf ("% c", & вибір);
}
while ((вибір == y) || (вибір == Y));
}

  1. Масив - структура даних містить набір елементів подібних типів даних, тоді як список пов'язаних даних вважається непомітною структурою даних, містить колекцію не упорядкованих пов'язаних елементів, відомих як вузли.
  2. У масиві елементи належать до індексів, тобто, якщо ви хочете потрапити в четвертий елемент, ви повинні написати ім'я змінної з її індексом або розташуванням у квадратній дужці.
    Однак у пов'язаному списку вам потрібно починати з голови і проробляти свій шлях до тих пір, поки не дістанетесь до четвертого елемента.
  3. Хоча доступ до масиву елементів є швидким, тоді як список пов'язаних ліній займає лінійний час, тому він є дещо повільнішим.
  4. Такі операції, як вставка та видалення в масивах, займають багато часу. З іншого боку, виконання цих операцій у пов'язаних списках швидко.
  5. Масиви мають фіксований розмір. Навпаки, пов'язані списки є динамічними та гнучкими і можуть розширювати та скорочувати його розмір.
  6. У масиві пам'ять призначається під час компіляції, тоді як у списку пов'язаних файлів вона виділяється під час виконання або під час виконання.
  7. Елементи зберігаються послідовно у масивах, тоді як вони зберігаються випадковим чином у пов'язаних списках.
  8. Потреба в пам'яті менша за рахунок фактичних даних, що зберігаються в індексі в масиві. На противагу, у пов'язаних списках потребує більше пам'яті через зберігання додаткових наступних та попередніх посилальних елементів.
  9. Крім того, використання масиву не є ефективним у масиві. І навпаки, використання масиву пам'яті ефективно в масиві.

Висновок

Списки масивів і пов'язаних типів - це типи структур даних, що відрізняються за своєю структурою, методами доступу та маніпулювання, потребою в пам'яті та використанням. І мають особливу перевагу та недолік щодо його реалізації. Отже, будь-який може бути використаний відповідно до потреби.