Робота з динамічними структурами..

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Інформаційних систем та мереж (ІСМ)

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Алгоритми і структури даних
Група:
КН

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ICM Лабораторна робота №5 з дисципліни “Алгоритми і структури даних” “ Робота з динамічними структурами..” Виконав: студент гр. КН-2 Львів 2007 Мета роботи: набуття практичних навичок опрацювання таких динамічних структур як звязні списки і дерева. Завдання на роботу: Розробити програми які виконують операції вказані в індивідуальному завданні. Програму для роботи з двонапрваленими звязними списками. Кожен елемент списку містить зсилки на наступний і попередній елемент в списку. Програма повинна забезпечувати ввід і побудову списку. Програму для роботи для роботи з деревами. Кожен елемент дерева містить зсилку на батьківський елемент і зсилки на елементи-нащадки (необмежена кількість). Програма повинна забезпечувати ввід і побудову дерева. Кожен елемент списку містить інформаційне поле(атрибут) деякого простого типу: символ, стрічка, число. Всі операції над динамісними стурктурами повинні супроводжуватись відповідним виводом на екран. В контрольних прикладах забезпечити опрацювання стурктур з 10-20 елементами. Хід виконання завдання 1) #include <stdio.h> #include <alloc.h> #include <conio.h> struct element { int info; struct element *next,*prev; }*p1,*po,*el1,*el2,*p,*t; int znach,n,m=1,k=1; void main() { clrscr(); puts("VVEDIT ZNACHENNYA ELEMENTIV"); puts("---------------------------\n"); scanf("%d",&znach); p1=(struct element *)malloc(sizeof(struct element)); p1->info=znach; p1->next=NULL; p1->prev=NULL; el1=(struct element *)malloc(sizeof(struct element)); el1=p1; scanf("%d",&znach); while(znach!=0) {el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=el1; el2->next=NULL; el1->next=el2; el1=el2; po=el2; scanf("%d",&znach);m++;} el1=p1; puts("\n"); puts("ELEMENTY SPYSKU"); puts("---------------------------\n"); do {printf("%d\n",el1->info); el1=el1->next;} while(el1!=NULL); puts("\n"); puts("vvedit element"); scanf("%d",&znach); puts("na yaku pozyciyu vstavyty"); scanf("%d",&n); puts("\n"); el1=p1; while(n>m) {puts("V spysku nema stilky elementiv, vvedit inshu pozyciyu"); scanf("%d",&n);} if(n==1) {el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=NULL; el2->next=el1; p1=el2;} else if(n==m) {el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=po; el2->next=NULL; po->next=el2; } else {while(k!=m) {if(k==n-1) t=el1; if(k==n) p=el1; el1=el1->next; k++;} el2=(struct element *)malloc(sizeof(struct element)); el2->info=znach; el2->prev=t; t->next=el2; el2->next=p; p->prev=el2;} el1=p1; puts("NOVYI SPYSOK"); puts("---------------------------\n"); do {printf("%d\n",el1->info); el1=el1->next;} while(el1!=NULL); } Результати виконання  2) #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct tree {int info; struct tree *left,*right; } TreeNode; TreeNode *NewNode(void); void AddNode(TreeNode *pnew,TreeNode ** root_adr); void ShowTree(TreeNode *proot,int lev); void PrintTree(TreeNode *proot); int TreeHeigh(TreeNode *proot); TreeNode *root; int main(void) {TreeNode *node; clrscr(); puts("formuvannya dereva"); while((node=NewNode())!=0) AddNode(node,&root); puts("\n\t Cformovane derevo"); PrintTree(root); return 0; } TreeNode * NewNode (void) {TreeNode *pel; int buf; if(scanf("%d",&buf)==0) return 0; pel=(TreeNode *)malloc(sizeof(TreeNode)); pel->info=buf; pel->left=pel->right=NULL; return pel; } void AddNode(TreeNode *pnew,TreeNode **root_adr) {TreeNode *proot=*root_adr; int cmp; if(proot==NULL) {*root_adr=pnew; return ;} cmp=proot->info>pnew->info; if (cmp>0) AddNode(pnew,&proot->left); else AddNode(pnew,&proot->right); } void PrintTree(TreeNode *proot) {if(proot==NULL) return; PrintTree(proot->left); printf("%d",proot->info); PrintTree(proot->right); } Висновок: на даній лабораторній роботі я набув практичних навичок опрацювання таких динамічних структур як звязні списки і дерева.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!