Структури даних та алгоритми C ++

Структури даних та алгоритми C ++ - означає впорядкування або впорядкування елементів певним чином. Коли ми говоримо, що ми маємо влаштовувати елементи, ці елементи можуть бути організовані в різних формах. Наприклад, шкарпетки можна розташувати різними способами. Ви можете просто тримати його у вашому шафі все зіпсованим. Або ви можете тримати його акуратно складеним. Найкращим способом може бути складання та упорядкування їх за кольором. Тож для пошуку певної пари шкарпеток третя домовленість ідеальна.

У подібному способі організації шкарпеток Дані також можуть бути організовані різними способами або формами. Ці різні способи організації даних називаються структурою даних. Подивимось формальне визначення структури даних, а також структур даних та алгоритмів.

Структури даних та алгоритми C ++:

Логічна або математична модель конкретної організації даних.

АБО

Це особливий спосіб організації даних у комп’ютері, щоб їх можна було використовувати.

Аналогічно шкарпеткам; інша організація структур даних списку та алгоритмів C ++ доступна -

  1. Масив
  2. Пов'язаний список
  3. Стек
  4. Чергу
  5. Дерево
  6. Графік
  7. Таблиця хешу
  8. Купи
  9. Записи
  10. Столи

Ці структури даних та алгоритми C ++ дуже важливі під час програмування. Хороший програміст завжди робить акцент на структурі даних, а не на коді. Кожна мова програмування працює на різних структурах даних та алгоритмах в C ++. Структури даних, які доступні в C ++, є наступними.

  1. Масив
  2. Пов'язаний список
  3. Стек
  4. Чергу
  5. Дерево
  6. Графік
  7. Таблиця хешу
  8. Купи

Давайте обговоримо це по черзі:

№1 масив

Масив - це найпростіший тип структур даних та алгоритми C ++. Масив визначається як послідовний набір елементів даних одного типу даних фіксованого розміру. Наприклад, a0 = 12, a1 = 21, a2 = 14, a3 = 15… .Ми можемо представити одновимірний масив, як показано на малюнку:

Де

0, 1, 2, 3… ..n називається індексом або індексом

a (1), a (2), … a (n) називається індексною змінною

Це може бути одновимірний, двовимірний, тривимірний і так далі багатовимірний.

У масиві пам'яті зберігається в суміжних місцях пам'яті.

Найнижчій адресі відповідає перший елемент

Найвища адреса відповідає останньому елементу

Ми можемо оголосити 1-D (1-мірний) масив в C ++ наступним чином

dataType arrayName (arraySize);

Напр. Int num (5);

Ініціалізація масиву в C ++

num = (23, 10, 12, 3, 6);

Ми можемо об'єднати декларацію та ініціалізацію в одне твердження наступним чином.

int num = (23, 10, 12, 3, 6);

Коли ми хочемо динамічно розподілити розмір масиву, тоді нам слід нового оператора

int * a = новий int (розмір);

Недоліком масиву є введення та видалення елементів повільно, як в упорядкованому масиві та його фіксованому розмірі.

№2 пов'язаний список

Список посилається на лінійну колекцію предметів. Зв'язаний список - це серія підключених вузлів (елемент даних), як показано на малюнку 3. Заголовок вузла вказує на перший вузол списку, а останній вузол - на NULL, позначений символомÆ. Оскільки кожен вузол містить щонайменше.

  1. Частина даних (будь-якого типу)
  2. Вказівник на наступний вузол у списку

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

Перевага пов'язаного списку над масивом:

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

Примітка. Стати розробником C ++
Навчіться розробляти та налаштовувати програми для різних платформ. Код, тестування, налагодження та реалізація програмних програм. Розвивати навички, щоб забезпечити безперебійність роботи програм.

Типи пов'язаного списку:

1. Окремо пов'язаний список : містить лише одне зв'язане поле, яке містить адресу наступного вузла у списку, та інформацію, подану, що містить інформацію, що зберігається.

2. Один круговий зв'язаний список - це лише один список, але останній вузол списку містить адресу першого вузла замість нуля. Тобто вміст заголовка та наступного поля останнього вузла однакові.

3. Подвійно пов'язаний список містить два пов'язані поля попереднє та наступне. Попередньо пов'язане поле, яке містить адресу попереднього вузла у списку, а наступне зв'язане поле містить адресу наступного вузла у списку, а подана інформація містить інформацію про магазин.

4. Подвійний круговий пов'язаний список - це подвійний список, але наступне поле останнього вузла містить адресу першого вузла замість нуля.

Рекомендовані курси

  • Курс на VB.NET
  • Навчання з програмування наукових даних
  • Інтернет-курс ISTQB
  • Навчальний курс Kali Linux

Реалізація пов'язаного списку в C ++ передбачає створення вузла, видалення вузла зі списку, вставлення новоствореного вузла до списку та пошук вузла за допомогою конкретного ключа.

Код для створення вузла задається наступним чином:

Вставлення вузла до списку включає три випадки

1. Вставити вузол на початку означає вставити новостворений вузол як початковий вузол. Для вставлення вузла на початку спершу створили новий вузол та зробили нову точку вузла до старого запуску, а потім оновіть початок, щоб вказати на новий вузол, як показано на малюнку нижче:

Код для вставки вузла на початку:

2. Вставити вузол у хвіст означає вставити новостворений вузол як останній вузол. Для вставки вузла як хвостового вузла необхідно створити новий вузол і зробити стару останню точку вузла на новий вузол, а потім оновити хвіст, щоб вказувати на новий вузол.

3. Вставлення вузла в заданому положенні передбачає створення нового темп-вузла, Потім треба знайти положення вставки новоствореного вузла.

Код для вставки вузла в заданій позиції:

Видалення вузла зі списку передбачає видалення вузла з існуючого списку. Видалити вузол зі списку посилань просто, ніж вставити вузол у список. У C ++ код для видалення вузла задається наступним чином:

Переміщення вузла певним ключем (значенням) зі списку здійснює пошук у вузлі зі списку, інформація якого буде відповідати ключу певного вузла. Наступний код C ++ перейде до списку. структури даних та алгоритми C ++

№3 Стек

Стек - це список елементів, в який елемент може бути вставлений або видалений лише на одному кінці, який називається у верхній частині стека. Розглянемо приклад вежі Ханой. Тут, коли нам потрібно вставити диск, ми повинні вставити його тільки зверху, і аналогічно видалення диска відбувається лише зверху.

Стек використовує принцип LIFO - це означає, що він працює в останньому порядку в першому порядку. Тобто останній елемент, доданий до стека, є першим елементом видалення. Отже, на стеці є чотири основні операції:

  • Isempty: Ця операція визначає, чи стек порожній.
  • Push : ця операція додає новий елемент до стеку.
  • Спливаюче вікно : ця операція видаляє елемент із елемента, який був доданий останнім часом.
  • Вгору: Ця операція повертає елемент, який був доданий до стеку останнім часом.

На наступному малюнку є прикладом стека, коли вставлення в стек та вилучення зі стека елемента відбувається зверху стека і більше ніде.

Переповнення стеку

Умова, що виникає внаслідок спроби натиснути елемент на повний стек.

Стек під потоком

Умова, що виникає при спробі вивести порожній стек.

Тут ми показали кілька натискань і поп-операцій на стеку. Припустимо, що спочатку стек порожній, тоді ми додали F, A, M, R, N. Потім двічі вискакуємо і натискаємо N, H, B, T, K, O, P.

Реалізація стека:

Її можна реалізувати, використовуючи масив або пов'язаний список обох.

Після наведеного коду зображено, як стек реалізований в C ++ за допомогою класу. Тут визначили один клас, названий як стек, в якому створено масив, названий як паличка з динамічним розміром і двома основними функціями push і pop.

Переповнення стека: вгорі> = розмір-1

Підтік стеку: коли верхній <0

Схожі статті: -

Ось кілька статей, пов’язаних із структурами даних та алгоритмами C ++, які допоможуть вам отримати більш детальну інформацію про алгоритми C ++ та структури даних та алгоритми так люб'язно пройдіть по посиланню, поданому нижче. якщо вам подобаються структури даних та алгоритми статті C ++, то дайте нам свій цінний коментар.

  1. Шпаргалка для мови програмування на C ++
  2. Linux проти Ubuntu
  3. C ++ Питання для інтерв'ю, які ви повинні знати
  4. Структури даних та алгоритми Інтерв'ю Питання | Найкорисніше
  5. Найкраща стаття для алгоритмів та криптографії (приклади)
  6. 8 дивовижних алгоритмів інтерв'ю на запитання та відповіді
  7. Дивовижне керівництво по Kali Linux проти Ubuntu
  8. C ++ Vector vs Array: Які найкращі функції