- •Лабораторная работа 1
- •Порядок проведения работы
- •Работа с файлами.
- •- В меню File выбрать опцию Save As, ввести имя файла для сохранения. (использовать расширение .Cpp)
- •- Выделить в меню Run опцию Run.
- •Работа с help.
- •2 Содержание отчета
- •3 Индивидуальные задания
- •4 Вопросы к лабораторной работе
- •Breakpoints - показать
- •Лабораторная работа 2 структура программы на языке си программа ввода-вывода
- •1 Порядок проведения работы
- •2 Содержание отчета
- •3. Индивидуальные задания
- •4. Вопросы к лабораторной работе
- •Лабораторная работа 3
- •1. Порядок выполнения работы
- •2. Содержание отчета
- •3. Индивидуальное задание
- •4. Вопросы к лабораторной работе
- •Лабораторная работа 4 использование математических функций из math.H для вычислений
- •1. Порядок выполнения работы
- •2. Содержание отчета
- •3. Индивидуальное задание
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 5 организация структуры программы. Операторы управления вычислительным процессом
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 6 классы памяти
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 7 указатели и массивы
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 8 структуры
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание заданий
- •4. Содержание отчета
- •5. Вопросы по лабораторной работе
- •Лабораторная работа 9 работа с файлами
- •1. Порядок выполнения работы
- •2. Индивидуальные задания
- •3. Содержание отчета
- •4. Вопросы по лабораторной работе
- •Лабораторная работа 10 динамические структуры данных
- •1. Индивидуальные задания
- •2. Содержание отчета
- •3. Вопросы по лабораторной работе
- •Приложение
- •Однонаправленные связные списки
- •Двунаправленные связные списки
- •Список рекомендуемой литературы
- •Содержание
-
Двунаправленные связные списки
Каждый узел двунаправленного списка имеет два указателя: один на предыдущий узел, другой на последующий. Это делает двунаправленный список более удобным при работе с ним.
Указатель
На заголовок
Список создается динамически и размер его может постоянно меняться. Это удобно использовать в программах обрабатывающих постоянно меняющиеся в размере массивы данных. Например: библиотечный фонд, отдел кадров и т.д.
// Пример программы работы с односвязным списком
#include <stdio.h>
#include <conio.h>
struct TelNum;
int printAllData(TelNum * start);
int inputData(TelNum * n);
struct TelNum
{
TelNum * next;
long number;
char name[30];
};
// Описание: печать списка
int printAllData(TelNum * start){
int c=0;
for(TelNum * next=start;next; next= next->next)
printf("#%3.3i %7li %s\n",++c,next->number,next->name);
return 0;
}
// Описание: ввод данных в структуру n конец ввода - ввод нуля
// в первое поле. Возвращает 1 если конец ввода
int inputData(TelNum * n){
printf("Номер?"); scanf("%7li",&n->number);
if(!n->number) return 1;
printf("Имя? "); scanf("%30s",&n->name);
return 0;
}
void main(void){
TelNum * start = NULL; //сторож
TelNum * end = start;
do{ //блок добавления записей
TelNum * temp = new TelNum;
if(inputData(temp))
{delete temp;
break;
}
else { if(start==NULL) { //создание первого узла списка
start = temp;
end = temp;
start->next = NULL;
}
else { //создание всех последующих узлов
end->next=temp;
end=temp;
end->next=NULL;
}
}
}while(1);
printf("\nЗаписи после добавления новых:\n");
printAllData(start);
getch();
do{ //блок удаления записей
TelNum * deleted = start;
start = start->next;
delete deleted;
printAllData(start);
getch();
}while(start!=NULL);
}
Список рекомендуемой литературы
1. М. Уэйт, С. Прайт, Д. Мартин. Язык СИ. - М.: "Мир", 1988 г.
2. Кеpниган Б., Ритчи Д. Язык пpогpаммиpования Си. - М.: Финансы и статистика, 1992г.
3. Кузнецов С.Д. Турбо Си. - М.: Малип, 1992г.
4. П. Киммел Borland C++ 5.0. – C-П.: «BHV-Cанкт Питербург», 1997 год.
5. Цимбал А.А.,Майоров А.Г., Козодаев М.А. Turbo C++: язык и его применение. – М.: «Джен Ай Лтд», 1993 г.
Содержание
Лабораторная работа 1 1
2 СОДЕРЖАНИЕ ОТЧЕТА 2
Лабораторная работа 2 3
2 СОДЕРЖАНИЕ ОТЧЕТА 4
ЛАБОРАТОРНАЯ РАБОТА 3 6
ЛАБОРАТОРНАЯ РАБОТА 4 8
ЛАБОРАТОРНАЯ РАБОТА 5 10
ЛАБОРАТОРНАЯ РАБОТА 6 13
ЛАБОРАТОРНАЯ РАБОТА 7 16
ЛАБОРАТОРНАЯ РАБОТА 8 20
ЛАБОРАТОРНАЯ РАБОТА 9 23
Лабораторная работа 10 26
1. индивидуальные задания 26
ПРИЛОЖЕНИЕ 26
СПИСОК рекомендуемой ЛИТЕРАТУРЫ 28
