Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приклад виконання лабораторної роботи. Короткі теоретичні відомості




Короткі теоретичні відомості

Список – це скінчений набір даних одного типу між якими налагоджено зв’язок. Елемент однонапрямленого списку складається з двох частин: самого даного та вказівника на наступний елемент списку.

Формат опису елементу списку:

struct назва_типу_списку

{

тип_поля1 назва_поля1;

тип_поля2 назва_поля2;

……………………………..

тип_поляN назва_поляN;

struct назва_типу_списку *тип_вказівника;

}

Наприклад,

struct rika

{

char nazva[12];

int dov;

long int pl;

struct rika *dali;

}

 

 

В результаті опису списку отримують тільки шаблон типу даних. Для роботи зі списком потрібно оголосити необхідні вказівники. Формат оголошення вказівників:

struct назва_типу_списку *ім’я_вказівника1,…,* ім’я _вказівникаМ;

Наприклад, struct rika *element, *pershyj, *poperednij, *novyj;

 

Вказівники *element, *pershyj, * poperednij, *novyj служать для організації роботи зі списком. Вказівник element – призначений для маркування поточного елементу списку. Тоді element->dov - вказівник на поле dov поточного елементу списку, element->dali - вказівник на наступний елемент списку, а element->dali->dov - вказівник на поле dov наступного елементу списку. Вказівник pershyj призначений для маркування першого елементу списку, вказівник poperednij - для маркування попереднього елементу списку, а novyj – для елементу списку, що створюється.

На відміну від статичного масиву структур зв’язаний список є динамічним масивом структур. Створення нового елементу здійснюється наступним чином:

novy j= (struct rika*)malloc(sizeof(struct rika)).

Вилучення поточного елементу списку полягає в присвоєнні вказівнику попереднього елементу вказівки на наступний за поточним елемент.

 

Постановка задачі. Написати програму, що утворює список, який містить інформацію про річки. Вивести список на екран. Додати новий запис. Вивести змінений список на екран.

Граф-схема алгоритму програми.

Блок 1 – початок алгоритму

Блок 2 – функція створення списку

Блок 3 – функція виведення створеного списку на екран

Блок 4 – функція додавання нового елементу списку

Блок 5 – закінчення алгоритму

 

Код програми мовою С

#include <stdio.h>

#include <stdlib.h>

struct rika

{

char nazva[12];

int dov;

long int pl;

struct rika *dali;

};

struct rika *element, *pershyj, *poperednij, *novyj;

void StvorytySpysok(void);

void VyvestyNaEkran(void);

void StvorytyNovyjElement(void);

 

intmain (int argc, char *argv[])

{

puts ("Stvorennja spysku");

puts ("Dlja zakinchennja vveditj nulj");

StvorytySpysok();

VyvestyNaEkran();

StvorytyNovyjElement();

element=pershyj;

novyj->dali=element;

pershyj=novyj;

puts ("Novyj Spysok");

VyvestyNaEkran();

system ("PAUSE");

return 0;

}

void StvorytySpysok(void)

{

element=(struct rika*) malloc (sizeof (struct rika));

pershyj=element;




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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