или
Заказать новую работу(фрагменты работы)
Учебное заведение: | Вузы города Пермь > Пермский государственный технический университет |
Тип работы: | Другие типы работ |
Категория: | Информатика, Программирование |
Год сдачи: | 2015 |
Количество страниц: | 11 |
Оценка: | 5 |
Дата публикации: | 28.05.2017 |
Количество просмотров: | 962 |
Рейтинг работы: |
1. «Информационные динамические структуры»
Цель: Знакомство с динамическими
информационными структурами на примере одно- и двунаправленных списков.
2. Постановка задачи
Написать
программу, в которой создаются динамические структуры и выполнить их обработку
в соответствии со своим вариантом.
Для
каждого варианта разработать следующие функции:
1.
Создание списка.
2.
Добавление элемента в список (в соответствии со своим вариантом).
3.
Удаление элемента из списка (в соответствии со своим вариантом).
4.
Печать списка.
5.
Запись списка в файл.
6.
Уничтожение списка.
7.
Восстановление списка из файла.
Порядок
выполнения работы
1.
Написать функцию для создания списка. Функция может создавать пустой список, а
затем добавлять в него элементы.
2.
Написать функцию для печати списка. Функция должна предусматривать вывод
сообщения, если список пустой.
3.
Написать функции для удаления и добавления элементов списка в соответствии со
своим вариантом.
4.
Выполнить изменения в списке и печать списка после каждого изменения.
5.
Написать функцию для записи списка в файл.
6.
Написать функцию для уничтожения списка.
7.
Записать список в файл, уничтожить его и выполнить печать (при печати должно
быть выдано сообщение "Список пустой").
8.
Написать функцию для восстановления списка из файла.
9.
Восстановить список и распечатать его.
10.Уничтожить
список.
Блок-схема решения задачи.
(фрагменты работы)
4. Программный код решения задачи.
#include
#include
#include
#include
#include
typedef struct
TList //структура список
{
int data;//поле данных
struct TList *next;//указатель на следующий элемент
} List;
List* Add(List
*l, List *ends, int n) //добавление звена списка
{
if (l==NULL) //если список ещё не создан,то
{
l=new List;//выделяем место под голову списка
l->next=NULL;//зануляем указатель на следующий
элемент
l->data=n;//заносим данные в голову списка
ends = l;//запоминаем конец списка
}
else //иначе
{
List *x= new List;//выделяем место под новый элемент
x->data=n;//заносим туда данные
x->next= NULL;//зануляем указатель на следующий
элемент
ends->next=x;//связываем новый элемент с концом
списка
ends = x;//устанавливаем конец списка на новый
элемент
}
return ends;//возвращаем как результат функции наш
список
}
void Print(List
*l) //вывод списка
{
if (l == NULL) {
printf("Список пустой\\n");
return;
}
List *tmp;
tmp = l;
while (tmp!=NULL) //пока не конец списка,делаем
{
printf("%3d",tmp->data);//выводим данные с 3 позициями для
вывода
tmp=tmp->next;//переходим к следующему элементу
}
printf("\\n");//переводим строку
}
//процедура удаления элемента со значеним m
List * Del(List
*l, List *ends, int m) {
if (l == NULL) {
printf("Список
пустой\\n");
return l;
Похожие работы
Работы автора