Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра інформаційних
систем та мереж
Лабораторна робота №11
на тему:
Динамічні структури даних.
Львів-2008р.
Назва роботи:
Динамічні структури даних.
Мета роботи:
Вивчити способи створення динамічних структур даних (списків, стеків, дерев, ...) та виконання операцій над ними.
Завдання лабораторної роботи:
Згідно з індивідуальним завданням розробити необхідні структури даних.
Сформувати структури даних у динамічній пам’яті та проініціалізувати їх введеними з клавіатури значеннями (див. табл. 14). При відсутності в умові завдання наперед заданої кількості елементів спискових структур в якості ознаки завершення їх формування вибрати імітацію кінця файла введення з клавіатури (натискування клавіш Ctrl/Z), або ввести деяке обумовлене число чи символ.
Виконати над елементами списку операції перетворення (формування, включення, виключення, пошук, виведення елементів), необхідні для розв’язування задачі. Операції над списком оформити у вигляді окремих функцій.
Перед завершенням роботи програми звільнити виділену для списку динамічну пам’ять.
Текст програми:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct stack1
{
char c1[5];
stack1 *dali;
};
typedef struct stack2
{
char c2;
stack2 *dali;
};
void main()
{stack1 *st1,*el1; stack2 *st2,*el2; char d[15],d2[15],*p,b; int i;
clrscr();
gets(d); strcpy(d2,d);
//-------------------
p=strtok(d,"+-/*()=");
st1=NULL; st2=NULL; //puts(p);
el1=(stack1*)calloc(1,sizeof(stack1));
el1->dali=st1;
st1=el1;
strcpy(el1->c1,p);
while(p!=NULL)
{p=strtok(NULL,"+-/*()=");
el1=(stack1*)calloc(1,sizeof(stack1));
el1->dali=st1;
st1=el1;
strcpy(el1->c1,p);
}
//-------------------
for(i=0; i<strlen(d2)+1;i++)
if(strchr("+-/*()=",d2[i])!=NULL)
{
b=d2[i];
el2=(stack2*)calloc(1,sizeof(stack2));
el2->dali=st2;
st2=el2;
el2->c2=b;
}
//=========================
puts("\nCтек 1:");
do
{
st1=el1->dali; el1=st1;
printf("%s ",st1->c1);
} while(st1->dali!=NULL);
int j=0;
puts("\n\nCтек 2:");
do
{
st2=el2->dali; el2=st2;
printf("%c ",st2->c2);
} while(st2->dali!=NULL);
getch();
}
Результати виконання програми:
Висновки:
Я вивчив способи створення динамічних структур даних (списків, стеків, дерев, ...) та виконання операцій над ними.
Блок-схеми: