Един динамичен списък, изпълнението и прилагането на в

1. Въведение

Много често, когато се разработват приложения, които работят на голям брой входни данни, възниква въпросът за съхранение им по време на изпълнението на програмата. Олово, всички от тях няма смисъл, ще се спра само на масиви. Без съмнение, този вид съхранение решава проблема, но е очевидно, че това не е без недостатъци. Главен сред тях, разбира се, че е с фиксиран размер. Този имот вече не може да се промени дори и динамично създадените масиви, които често прави програмисти, които ги използват единствено, за да разпредели памет "с наличност". Ами, на първо място, дори и "резерва" е ограничен, и никой не може да даде гаранции, че ще бъде достатъчно, и второ, напротив, "склад" може да бъде достатъчно, така че значителна част от програма разпределена памет ще бъде заето ненужно.







2. Отчет за проблема

За доказване на изпълнението на работата с динамичен списък, решаване на проблема:

"Файлът с текста са променливи идентификатори и техните числови стойности (например: х 15 ABC 12.098 Z -1.23) да ги прехвърлите в динамичен списък, за които прилагат следните операции: идентификатор търсене в списъка, промяна на стойността на идентификатора; премахване на идентификатора от списъка. добавяне в списъка на нов идентификатор с предварително определена стойност. След заседанието на списък с идентификатори и техните стойности прехвърлени обратно на файла "

Предизвикателството ще ни позволи да се научат как да се прилагат всички основни операции на динамичен списък - като създадете списък, добавяне и премахване на компоненти (възли) списък, да търсите и списък на компонентите. За решаването на необходимостта от знания за структурирани типове данни IO файла, индексите, и. Аз няма да създава обвивка за този проблем, въпреки че би било полезно, тъй като има редица възможни операции. Все пак, това не е основната ми цел в тази статия. Аз съм просто реализиране на всички операции в отделни функции и проба се отнасят до тях навреме.







3. решение

3.1. стандарт старт

Ние се пристъпи към решение. Създаване на проект в конзолата и напишете доста стандартен код - организиране на входен файл. За да се чете от метод на файл чрез getline (), където като трети параметър определя разликата, която е сепаратора в нашия файл.

Изглежда, че всичко е ясно и не изисква специално внимание. описваме видовете, изисквани в първата част на списък със задачи да работите, във втория ще имаме възможности да работят с него. Сега преминете направо към описанието на списък, тъй като програмата сме стигнали близо до него попълване.

3.2. Описание Dynamic списък

Като за начало, нека си припомним (или първо се научи)), така че един динамичен списък е определено количество компоненти (възли), включващ директно информационната част (число, низ, или по-сложни типове данни), както и връзка към следващия компонент (може би възел 2 включва препратки към следващия и предходния, в този случай, списъкът се нарича двойно свързан). По този начин, ние имаме следната структура описваща списъка на компоненти за нашия проблем:

Лесно е да се разбере какво означава да създадете празен списък. Всъщност, не е нужно нищо, освен, че позоваването на зададете първия елемент (главата) стойност е NULL. За да го издаде, като функция, паралелно да се създаде друг, който проверява за това състояние, ако списъкът е празен.

Ние виждаме, че всичко е просто. Разбира се, от типа, който описва в списъка може да бъде издадена като клас, и да функционира, за да го създаде, за да конструктора на класа, но аз ще го оставя на вас като домашна работа. Сега, в чиято основна функция (), променлива от тип dyn_list и да се създаде празен списък. След това преминете към следващата стъпка.

3.3 Операции с списък компоненти

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

3.4. Тестване функции и завършване на програмата

Е, всичко е просто, в един цикъл, ние може да се отнася само до функцията за добавяне на компонент към списъка. След цикъла, останалата част от нашите тестови функции и ще покаже на целия списък във файла. Основната функция () Ето целия код тук

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