Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Программы позиционирования для работы со списками

Rusa


Программы позиционирования для раб&# 17317r1722r 1086;ты со списками



Допустим, что в главной программе, раб&# 17317r1722r 1086;тающей со списком, построенным в результате выполнения функции createlist(20) double latitude поместить широту населенного пункта, название которого находится в элементе village k number k

knotpointer

struct scb

;

int lenth;  // Число узлов в списке

struct scb *current; // Указатель на текущий узел

struct scb *listbeg; // Указатель на первый узел

struct scb *listend; // Указатель последнего узла

// knotpointer: получает адрес k-го узла

struct scb *knotpointer(int k)



}

else

}

else

printf((" !\n"

return(current);

}

k<1 k>lenth

Возвратимся к поставленной задаче получения широты пункта. Имея программу knotpointer

void main void

Следует отметить, что могут быть и более сложные программы позиционирования. Если, например, нужно получить адрес узла, ближайшего в смысле координат к точке, широта и долгота которой - это аргументы программы позиционирования, то нужно запрограммировать дополнительно алгоритм получения точных расстояний между двумя произвольными точками на поверхности Земли. Для точных расчетов обычно Земля представляется в виде геометрического тела вращения, называемого эллипсоидом Красовского (в данном пособии мы это рассматривать не будем).



Списки могут расширяться за счет включения дополнительных узлов. Причем линейные списки желательно после этого перенумеровывать. Программа knotin добавления нового узла в соответствующее место может раб&# 17317r1722r 1086;тать различным образом. Для нашего двунаправленного списка типовыми будут два способа:

1) новый узел нужно поставить в список между двумя узлами, имеющими наиболее близкие координаты на поверхности Земли (этот случай мы не будем рассматривать из-за его сложности);

2) новый узел с номером k k lenth k lenth-k

Списки могут сокращаться за счет исключения имеющихся узлов. Причем линейные списки желательно после этого перенумеровывать. Программа knotout исключения узла из соответствующего места списка может раб&# 17317r1722r 1086;тать различным образом. Для нашего двунаправленного списка типовыми будут также два способа:



1) нужно в списке найти узел, ближайший к точке, чьи географические координаты указаны в качестве аргументов knotout

2) нужно найти узел с номером k k lenth lenth-k и уменьшив их номера на единицу.

Упражнение 8-1. Написать функцию knotin(k true k false k поставить в список невозможно.

Упражнение 8-2. Написать функцию knotout k true k false k




Document Info


Accesari: 858
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )