русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Линейные списки


Дата добавления: 2013-12-23; просмотров: 2123; Нарушение авторских прав


Ссылки

Типы рекурсивных данных

Динамические структуры данных

Вопросы для самопроверки

1.Отличие вала от оси.

2. Что называют цапфой, шипом, шейкой и пятой?

3. Почему расчет вала разделяют на два этапа: проектный и проверочный?

4. По каким напряжениям выполняют проектный расчет вала и почему при этом уменьшают допускаемые напряжения?

5.Каковы основные критерии работоспособности валов и осей?

Какова цель проверочного расчета? Какой параметр при этом определяют?

6.Укажите наиболее распространенные марки сталей, применяемых для изготовления валов и осей.

7. В каких случаях производят расчет валов на жесткость?

8.Каковы конструктивные и технологические способы повышения выносливости валов?

9. Зачем нужна проверка статической прочности?

10. Какие факторы учитывают при определении запаса сопротивления усталости вала?

Это незавершённая статья. Вы можете помочь проекту, исправив и дополнив её.

 

Содержание [убрать] · 1 Типы рекурсивных данных · 2 Ссылки · 3 Линейные списки · 4 Деревья · 5 Сбалансированные деревья · 6 Деревья оптимального поиска · 7 Б-деревья · 8 Деревья приоритетного поиска · 9 Литература

Линейный список представляет собой последовательность n≥0 узлов Х[1], X[2], … , X[n], важнейшей структурной особенностью которой является такое расположение элементов списка один относительно другого, как будто они находятся на одной линии. Иначе говоря, в такой структуре должно соблюдаться следующее условие: если n>0 и X[1] является первым узлом, а X[n] – последним, то k –й узел следует за X[k-1] и предшествует узлу X[k+1] для всех 1< k <n. Элемент списка состоит из двух частей: информационной, содержащей данные, и адресной, где хранятся указатели на следующие элементы.



В зависимости от количества полей в адресной части и порядка связывания элементов различают:

Линейные односвязные списки – единственное адресное поле содержит адрес следующего элемента. Если следующий элемент отсутствует, то в адресное поле заносят константу nil;

Линейные двусвязные списки – каждый элемент содержит адреса предыдущего и по-следующих элементов, соответственно, первый элемент в качестве адреса предыдущего, а последний – в качестве адреса следующего элемента содержит nil. Для описания элементов списка используют записи, например, элемент односвязного списка с двумя информационными и одним адресным полями может быть описан следующим образом:

Tape pe = ^element; {тип указателя}

element = record

name: string[16]; {информационное поле 1}

telefon: string[7]; {информационное поле 2}

p: pe; {адресное поле}

end;

Элемент двусвязного списка описывается с двумя адресными полями, например:

Tape pe = ^element; {тип указателя}

element = record

name: string[16]; {информационное поле 1}

telefon: string[7]; {информационное поле 2}

prev: pe; {адресное поле «предыдущий»}

next: pe; {адресное поле «следующий»}

end;


С линейными списками могут выполняться следующие операции:

1) Получение доступа к k-му узлу списка для проверки и/или изменения содержимого его полей.

2) Вставка нового узла сразу после или до k-го узла.

3) Удаление k-го узла.

4) Объединение в одном списке двух или более линейных списков.

5) Разбиение линейного списка на два или более списка.

6) Создание копии линейного списка.

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

8) Сортировка узлов в порядке возрастания значений в определенных полях этих узлов.

9) Поиск узла с заданным значением в некотором поле.

В одном компьютерном приложении редко используются сразу все девять типов операций в общей их формулировке. Поэтому линейные списки могут иметь самые разные представления в зависимости от класса операций, которые наиболее часто должны с ними выполняться. Достаточно трудно создать единое представление линейных списков, при котором бы эффективно выполнялись все эти операции. Например, сравнительно сложно организовать доступ к k-му узлу длинного списка для произвольно выбранного k, если одновременно необходимо выполнять вставку и удаление элементов в середине списка. Поэтому различают разные типы линейных списков в зависимости от выполняемых с ними основных операций. Линейные списки, в которых операции вставки, удаления и доступа к значениям чаще всего выполняются в первом или последнем узле, получили следующие специальные названия.

Стек – это линейный список, все операции вставки и удаления (и, как правило, операции доступа к данным) выполняются только на одном из концов списка.

Очередь или односторонняя очередь - это линейный список, в котором все операции вставки выполняются на одном из концов списка, а все операции удаления (и ,как правило, операции доступа к данным) – на другом.

Дек или двусторонняя очередь - это линейный список, все операции вставки и удаления (и, как правило, операции доступа к данным) выполняются на обоих концах списка.

Рис.1. Три наиболее важных класса линейных списков

Чаще других списков используют линейные односвязные списки, так как они сравнительно просты. Рассмотрим более подробно, как выполняются основные операции с такими списками.



<== предыдущая лекция | следующая лекция ==>
Расчет валов и осей на жесткость | Исходные установки.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.009 сек.