128
Егер өшірілетін элемент тізім соңында орналасса (3 оператор), онда
pend
тізім соңы нұсқауышын соңғы элементтен бұрын орналасқан элемент-
ке ауыстыру керек, оның адресі соңғы элементтің
prev
өрісінде жазылған.
Жаңа соңғы элемент үшін келесі элементке нұсқауыш мəнін нөлге теңестіру
қажет. Егер өшіру тізім ортасынан орындалса, онда осы элементтен бұрын
жəне одан кейін орналасқан элементтер арасында қосбағытты байланыс ор-
нату жеткілікті. Нұсқауыштарды түзеткеннен кейін элементке бөлінген жады
босатылады жəне функция
true
мəнін қайтарады.
Тізімге элементті кірістіру функциясының жұмысы 3.2-суретте көрсетілген.
Бағыттауыш сызықтардың жанындағы нөмірлер түсініктемелердегі оператор-
лар нөмірлеріне сəйкес келеді.
Байланысқан тізімді сұрыптау элементтер арасындағы байланыстарды
өзгертумен сипатталады. Алгоритмнің барысы: бастапқы тізім қаралып, оның
əрбір элементі жаңа тізімде өз кілтінің мəні бойынша анықталатын орынға
кірістіріледі.
3.2-сурет.
Тiзiмге элементтi кірістіру
Төменде
реттелген тізімді қалыптастыру функциясы келтірілген
(алғашқы элемент бар деп есептеледі):
void add_sort(Node **pbeg, Node **pend, int d){
Node *pv = new Node; // қосылатын элемент
pv->d = d;
Node * pt = *pbeg;
while (pt){ // тізімді қарап шығу
if (d < pt->d){ // ағымдағы элемент (pt)
// алдына орналастыру
pv->next = pt;
Достарыңызбен бөлісу: