Лабораторная работа №11 / лаба1 по ТП
.docФедеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра технической кибернетики
Лабораторная работа №1
Создание списковых структур данных
Выполнили: студенты
группы АСОИ-232
Кутушева А.Ш.
Латыпова А.Р.
Шангареева Ю.М
Приняла: Семененко Д.В.
Уфа 2007
Цель работы: написать программу формирования и печати односвязного списка друзей с указанием их телефонов и адресов. Признаком окончания списка является нулевое значение номера телефона.
Листинг программы:
#include <stdlib.h>
#include <stdio.h>
struct cell /* Определение структурного типа "Звено списка"*/
{
char name [10];
int phone;
struct cell * pc;
};
void main()
{
/* Указатель для перебора звеньев списка: */
struct cell * rex;
struct cell * beg=NULL; /* Начало списка */
struct cell * end=NULL; /* Конец списка */
printf("\nVvedite znacheniya struktur:\n");
/* Цикл ввода и формирования списка */
do
{
/* Выделить память для очередного звена списка */
rex=(struct cell *)malloc(sizeof(struct cell));
/* Ввести значения элементов звена */
printf("name=") ;
scanf("%s",& rex->name) ;
printf("phone=") ;
scanf("%d",& rex->phone);
if(rex->phone == 0)
{
free(rex) ;
break; /* Выход из цикла ввода списка */
}
/* Включить звено в список: */
if(beg==NULL && end==NULL)
/* Список пуст - включить введенный элемент в список первым*/
beg=rex;
else
end->pc=rex;
end=rex ;
end->pc=NULL ;
}
while(1) ; /* Выход из цикла ввода списка */
/* Включить звено в список: */
printf("\nSoderganie spiska:") ;
rex=beg;
while (rex!=NULL)
{
printf("\nname=%s\tphone=%d",rex->name,rex->phone) ;
rex=rex->pc;
}
printf("\n") ;
}
Блок-схема
да
нет
Вывод: в ходе этой лабораторной работы были исследованы способы обработки односвязных списков. Была составлена программа, реализующая создание односвязного списка с нулевым признаком окончания списка.