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

Структури на данни и алгоритми C ++ - означава подреждане или организиране на елементите по определен начин. Когато казваме, че трябва да подредим елементи, тези елементи могат да бъдат организирани под различни форми. Например, чорапите могат да бъдат подредени по различни различни начини. Можете просто да го държите в шкафа си всички объркани. Или можете да я държите добре сгъната. Най-добрият начин може да бъде сгъването и подреждането им по цвят. Така че за търсене на конкретна двойка чорапи, третата подредба е перфектна.

По подобен начин на организация на чорапи, Данните могат също да бъдат организирани по различни начини или форми. Тези различни начини за организиране на данни се наричат ​​структура на данни. Нека видим официално определение на структурата на данните и структурите на данните и основите на алгоритмите.

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

Логическият или математически модел на определена организация на данни.

ИЛИ

Това е особен начин за организиране на данни в компютър, така че да могат да бъдат използвани.

Подобно на чорапите; различна организация на структури от данни и алгоритми на списъка с налични C ++ е -

  1. Array
  2. Свързан списък
  3. купчина
  4. Опашка
  5. Дърво
  6. диаграма
  7. Таблица за хеш
  8. купчина
  9. Records
  10. Маси

Тези структури от данни и алгоритми C ++ са много важни при програмирането. Добрият програмист винаги акцентира върху структурата на данните, а не върху кода. Всеки език за програмиране работи върху различни структури от данни и алгоритми в C ++. Структурите на данните, които са достъпни в C ++, са както следва.

  1. Array
  2. Свързан списък
  3. купчина
  4. Опашка
  5. Дърво
  6. диаграма
  7. Таблица за хеш
  8. купчина

Нека обсъдим това едно по едно:

№1 масив

Array е най-простият тип структури от данни и алгоритми 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 число (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. Double Circular Linked List е двойно свързан списък, но следващото поле на последния възел съдържа адреса на първия възел вместо null.

Препоръчителни курсове

  • Курс по VB.NET
  • Обучение за програмиране на научни данни
  • Онлайн ISTQB курс
  • Kali Linux Курс за обучение

Внедряването на свързан списък в C ++ включва създаване на възел, изтриване на възел от списъка, вмъкване на новосъздаден възел в списъка и търсене на възел с определен ключ.

Кодът за създаване на възела е даден, както следва:

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

1. Вмъкването на възел в началото означава въвеждането на новосъздадения възел като начален възел. За да вмъкнете възел в началото, първо създайте нов възел и направете нова точка на възел до стар старт, а след това актуализирайте старт, за да сочи нов възел, както е показано на фигурата по-долу:

Код за поставяне на възел в началото:

2. Вмъкването на възел в опашката означава въвеждане на новосъздадения възел като последен възел. За да поставите възела като опашен възел, трябва да създадете нов възел и да направите стара последна точка на възела към новия възел и след това да актуализирате опашката, за да сочи към новия възел.

3. Поставянето на възел в дадена позиция включва създаването на нов темп възел, След това трябва да се намери позицията на вмъкване на новосъздадения възел.

Код за вмъкване на възела в дадена позиция:

Изтриването на възел от списъка включва премахване на възел от съществуващ списък. Изтриването на възела от списъка с връзки е просто, отколкото да поставите възел в списъка. В C ++ кодът за изтриване на възела е даден, както следва:

Преминаването на възел с определен ключ (стойност) от списък ще търси възел от списъка, чиято информация ще съвпада с ключа на даден възел. Следният C ++ код ще премине през списък. структури от данни и алгоритми C ++

# 3 Стека

Стека е списък на елементи, в които елемент може да бъде вмъкнат или изтрит само в единия край, наречен горната част на стека. Да разгледаме примера на кулата на Ханой. Тук, когато трябва да вмъкнем диск, трябва да го вмъкнем само отгоре и по подобен начин премахването на диска става само отгоре.

Stack използва LIFO принципа означава, че работи в Last in First Out ред. Това е последният елемент, добавен към стека, е първият елемент за премахване. Така че има четири основни операции, които могат да бъдат извършени на стека:

  • Isempty: Тази операция вижда дали стекът е празен.
  • Push : Тази операция добавя нов елемент към стека.
  • Pop: Тази операция премахва елемент от най-скоро добавения елемент от стека.
  • Нагоре: Тази операция връща елемент, който е добавен към стека най-скоро.

Следващата фигура е пример за стека, при който вмъкването в стек и премахването от стека на елемента се извършва от върха на стека и никъде другаде.

Запълване на стека

Условието в резултат на опит да избуташ елемент върху пълен стек.

Подреждане на стека

Условието в резултат на опит да изскочи празен стек.

Тук сме показали няколко push и pop операции на стека. Да предположим, че първоначално стекът е празен, след това добавихме F, A, M, R, N. След това изскачаме два пъти и натискаме N, H, B, T, K, O, P.

Изпълнение на Stack:

Може да се реализира с помощта на масив или свързан списък и двете.

Следният код е изобразен как стека е реализиран в C ++ с помощта на Class. Тук са дефинирани един клас, наречен като стек, в който е създаден масив, наречен като стик с динамичен размер и две основни функции 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: Кои са най-добрите функции