proga


Билет 18.1. Поиск с помощью хэширования. Ассоциативные массивы.2. Из стандартного входного потока вводятся вещественные числа Xi, до тех пор пока не встретится 0. Пусть ввелось n чисел. Найти сумму X1*Xn+X2*Xn-1+...+ Xn*X1.
Билет 7.1. Динамические структуры данных. Способы реализации. Реализации в Си - функций malloc(), free(). realloc().2. Построить все этапы роста Б-дерева степени 1, если ключи приходят так: 70, 11, 33, 4, 71, 20, 40, 30.
Билет 19.1. Современные виды деревьев.2. Построить процедуру, выводящую все байты (именно байты, так написано в билете, я не ошибся) заданного вещественного X в целом виде.
Билет 9.1. Стеки. Способы представления. Операции над ними и их трудоемкость.2. Найти последовательность 13 - ти чисел, для которой процедура включения в сбалансированное дерево строит дерево, имеющее максимальную высоту
Билет №...1. Динамическая память. Реализация в Си: malloc, reallock, free2. Построить по заданным ключам Б-дерево первой степениБилет №91) Стеки2) Даны 13 чисел. В какой последовательности их нужно подавать на вход, чтобы построить сбалансированное дерево максимальной высоты У нас есть вещественное число double (скорее всего оно занимает 8 байт, но лучше писать sizeof)И нужно завести переменную, точнее указатель типа char (1 байт)И циклом пройтись charom по doublu for( i=0; i<sizeof(double); i++){printf("%d", &p); // p - это тот самый указатель типа charp++; }тогда и получится, что мы распечатали double, но побайтово, т.к. наш указатель именно один байт Билет (если не ошибаюсь) №191. Современные виды деревьев (splay)2. вводим вещественное число -вернуть все его байты в целом виде. Билет 5Объединения Построить процедуру обхода 100-арного дерева 
void inorder(struct tree *root){if(!root) return;printf("%c ", root->info);inorder(root->el_1);inorder(root->el_2);.........inorder(root->el_100);}где задана структура struct tree {char info;struct tree *el_1;.......struct tree *el_100;} *root;16 билетДБ- и СДБ-деревьяЗадача: на вход подается последовательность чисел, последним вводится 0.Высчитать сумму x(1)x(n)+x(2)x(n-1)+...+x(n)x(1). билет 1.первый вопрос из списка.задача построить ДБ-дерево, если на вход идет определенная последовательность double a( int i ) {if( i==1 )return 1;if( i==2 )return 1.5;return ( a( floor( i/3.0) )*a( floor(i/2.0) ) + 1 );}Ну и соответственно вызываем a(m), чтобы найти Am. floor - функция из math.h, выделяет целую часть числа. билет 141. Основные операции над сбалансированными деревьями. Трудоемкость.2. A1 = 1, A2 = 1.5. Ai = A[i/2] * A[i/3] + 1; то, что в квадратных скобках - индекс, берем целую часть. Дано m, найти Am; 
#include<stdio.h>#include<stdlib.h>#define M 10int main(){inti;int k=2/3;float a[M];a[0]=1.0;a[1]=1.5;for (i=2; i<M; i++){a[i]=a[i/2]*a[i/3]+1.0;}printf("%f", a[M-1]);}билет 61. Множества2. Построить красно-чёрное дерево (несколько ключей) билет 17деревья оптимального поискапроцедура удаления элемента двусвязного списка Излюбленный вопрос: задавался очень многим: "Вот у вас есть текст. Допустим у вас есть программа, которая из текста подсчитывает количества определённых слов и потом выдаёт их вам. В каком типе данных, точнее в каком дереве вы бы стали их хранить?"Я ему сказал в АВЛ. Он сказал, что не совсем согласен, но логика моя доказуема) 11 билет:1) Деревья. Определения. Виды и особенности деревьев.2)написать программу, которая преобразует однонаправленный линейный список в аналогичный, где элементы идут в обратном порядке.2. Из стандартного входного потока вводятся вещественные числа Xi, до тех пор пока не встретится 0. Пусть ввелось n чисел. Найти сумму X1*Xn+X2*Xn-1+...+ Xn*X1.
вот без списка забахал#include <stdio.h>#include <stdlib.h>int main(){float *x;float m;int n,i;float s;x=malloc(sizeof(double)*100);m=1;i=0;while(m!=0){scanf("%f", &m);x[i]=m;i=i+sizeof(double);}i=i-2*sizeof(double);s=0;n=i;for (i=0; i<=n; i=i+sizeof(double)){s=s+(x[i]*x[n-i]);}printf("%f", s);return 0;}
со списком
#include <stdio.h>struct List{int Data;struct List* Next;struct List* Prev;}*Current;int main (int argc, char* argv[]){double x;double sum = 0;Current = (struct List*)malloc(sizeof(struct List));struct List* Head = Current;scanf("%lf", &x);while(x!=0){Current->Data = x;struct List* tmp = (struct List*)malloc(sizeof(struct List));tmp->Prev=Current;Current->Next = tmp;tmp->Next = NULL;Current = Current->Next;scanf("%lf",&x);}while(Head->Next!=NULL){Current = Current->Prev;sum+=Current->Data*Head->Data;Head=Head->Next;}printf("%lf", sum);return 0;}
#include < iostream.h >
#include < conio.h >
#include < stdlib.h >
#include < time.h >
typedef long BT;
struct Zveno{
BT Inf;
Zveno *Next; };
Zveno *V_Nachalo(Zveno *First, BT X)
{Zveno *Vsp;
Vsp = (Zveno *) malloc(sizeof(Zveno));
Vsp->Inf=X; Vsp->Next=First; First=Vsp;
return First;
}
Zveno *Iz_Nachala(Zveno *First)
{Zveno *Vsp;
Vsp=First->Next;
free(First);
return Vsp;
}
Zveno *V_Spisok(Zveno *Pred, BT X)
{Zveno *Vsp;
Vsp = (Zveno *) malloc(sizeof(Zveno));
Vsp->Inf=X;
Vsp->Next=Pred->Next;
Pred->Next=Vsp;
return Vsp;
}
BT Iz_Spiska(Zveno *Pred)
{BT X;
Zveno *Vsp;
Vsp=Pred->Next;
Pred->Next=Pred->Next->Next;
X=Vsp->Inf;
free(Vsp);
return X;
}
void Print(Zveno *First)
{Zveno *Vsp;
Vsp=First;
while (Vsp)
{cout << Vsp->Inf << ' '; Vsp=Vsp->Next;}
cout << "\n";
}
int Pust(Zveno *First)
{
return !First;
}
Zveno *Ochistka(Zveno *First)
{
while (!Pust(First)) First=Iz_Nachala(First);
return First;
}

Приложенные файлы

  • docx 17698223
    Размер файла: 21 kB Загрузок: 7

Добавить комментарий