Pеализация бинарного дерева

Опубликовано DEPS | Без рубрики | Четверг 27 мая 2010 00:20

Pеализация бинарного дерева на C++

Pабочий вариант (ctrl+c ; ctrl+v , для студентов!) ;)


#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

////Sozdanie strukturi dannix

struct Node
{
int data; int ur;
Node *left, *right;
};

//////  Funkcija Sozdanie Uzla()

Node *CreateNode()
{
Node *newNode;
newNode=new Node;
cout<<”\nVvedite cheslo katorae dobavit:  “;
cin>>newNode->data;
newNode->left=NULL;
newNode->right=NULL;
return newNode;
}

/////  Funkcija Prosmotra Dereva ()

void PrintTree (Node *cur)
{

if ( ! cur ) return;
PrintTree (cur->left);
cout<<cur->data<<’\n’;
PrintTree (cur->right);
}

///  Funkcija Poiska Uzla()

Node *FindNode (Node *cur, int x)
{
Node *cur1;
if (!cur) return NULL;
cout << “\n Prosmotr Elementa S Dannimi : ” << cur->data << “\n”;
if (cur->data==x) return cur;
else {
if (cur->left==NULL && cur->right==NULL) return 0;
if (cur->left!=NULL)
{
cout << “\nPravaja Storona”;
cur1=FindNode(cur->left,x);
if(cur1!=NULL) return cur1;
}
if (cur->right!=NULL)
{
cout << “\nLevaja Storona”;
cur1=FindNode(cur->right,x);
if(cur1!=NULL) return cur1;
}
if(cur1==NULL) return 0;
}
};

///  Funkcija uzdalenia Uzla()

Node *dzesana(Node *cur)
{
Node *cus;
if (cur->left==NULL && cur->right==NULL) return cur;
else
{
if (cur->left!=0) {
cus=dzesana(cur->left);
delete cus;
cur->left=0;
}
if (cur->right!=0) {
cus=dzesana(cur->right);
delete cus;
cur->right=0;
}
if (cur->left==NULL && cur->right==NULL) return cur;
}
};

///   Main()

int main(int argc, char *argv[])
{
Node *root=0, *newNode, *cur, *sak=0;
int izv,x;
do
{
cout<<”\n1. Sozdanija Uzla\n”;
cout<<”2. Poisk Uzla\n”;
cout<<”3. Mezgla meklesana\n”;
cout<<”4. Kakomu uzlu Dobavit levova rebenka?\n”;
cout<<”5. Kakomu uzlu Dobavit pravavo rebenka?\n”;
cout<<”6. Udalenija Lista\n”;
cout<<”0. Exit\n”;
cin>>izv;
switch(izv)
{
case 1: {
if (!root)
{
cout<<”\nRoot “;
root=CreateNode();
}
else cout<<”\nRoot uzhe sushestvuet!!!\n”;
break;
}
case 2: {
cout<<”\nDereva : \n”;
PrintTree(root);
cout<<”\n”;
break;
}
case 3: {
if (root)
{
cout<<”\nShto ishem “;
cin>>x;
cur=FindNode(root,x);
if (cur==NULL) cout<<”\nNet takova Elementa “<< “\n”;
else  cout<<”Est takoj Element “<<cur->data << “\n”;
}
else cout<<”\nBinarnoe Derevo Pustoe!!!\n”;
break;
}

case 4: {
cout<<”Kakomu uzlu Dobavit levova rebenka?  “;
cin>>x;
cur=FindNode(root,x);
if (cur==NULL) cout<<”\nNenashol!”;
else
{
if(cur->left!=NULL)  cout<<”U dannova uzla est Levij rebenak!” ;
else newNode=CreateNode(); cur->left=newNode;
}
break;
}
case 5: {
cout<<”Kakomu uzlu Dobavit pravova rebenka? “;
cin>>x;
cur=FindNode(root,x);
if (cur==NULL) cout<<”Nenashol!”;
else
{
if(cur->right!=NULL)  cout<<”U dannova uzla est Pravij rebenak!”;
else newNode=CreateNode(); cur->right=newNode;
}
break;
}
case 6: {
cout<<”\nKakomu uzlu udalit List? “;
cin >> x;
cur=FindNode(root,x);
sak=dzesana(cur);
cout << “\nUdalit Listja\n”;
break;
}
case 0: {
cout << “\nExit\n”;
break;
}
}
}
while(izv!=0);

system(”PAUSE>>null”);
return 0;
}

Run Length Encoding

Опубликовано DEPS | Без рубрики | Среда 26 мая 2010 22:05

Pеализация алгоритма RLE (Run Length Encoding) в виде архиватора на C++

Полностью рабочий вариант программы: Остается только скопировать и запустить!!!

#include <stdio.h>
#include <iostream>
#include <sstream>
#include <string.h>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;
// Arhivirovat v Rezhime Konsoli()

int Console()
{
char A[9999];
int i,x;
fstream Fails(”Tekst.txt”,ios::out);
fstream Arhivs(”Arhiv.txt” ,ios::out );
cout<<”\n\t\tSimboli: “;
cin>>A;
Fails<<A;

//(x) PodscitovanieElementov——-
for(i=0;i<(char)A;i++)
{
for (;A[i];i++)
{
x++;
}
}
//——————————-
cout<<”\tRazmer_Faila: “<<x<<” bait\n\t\t”;
cout<<” Arhiv:”;
for (i=0;i<x;i++)
{
int sk=1;
for (;A[i]==A[i+1];i++)
{
sk++;
}
cout<<” “<<sk<<”*”<<A[i];
Arhivs<<sk;
Arhivs<<”*”;
Arhivs<<A[i];
Arhivs<<” “;
}
cout<<”\n”;
Fails.close();
}
// Arhivirovat iz Txt Dokumenta()

int Txt()
{
char A[9999];
int x,i;
ifstream Fails(”Tekst.txt”,ios::in);
//————————
if (!Fails)
{
cout << “Net_Faila!”;
system(”PAUSE>>null”);
exit(0);
}
//————————-
while (! Fails.eof() )
{
Fails.getline (A,9999);
x=Fails.gcount();
cout<<”\tRazmer_faila: “<<x<<” baiti\n”;
cout<<”\t     Simboli: “<<A<<”\n”;
fstream Arhivs(”Arhiv.txt” ,ios::out );
//—————————
int sk=0;
cout<<”\t      Arhiv:”;
for (i=0;i<x;i++)
{
sk=1;
for (;A[i]==A[i+1];i++)
{
sk++;
}
cout<<” “<<sk<<”*”<<A[i];
Arhivs<<sk;
Arhivs<<”*”;
Arhivs<<A[i];
Arhivs<<” “;

}
//cout<<”\n”;
}
Fails.close();
}

//  Razarhivirovanie ()
int UnrarTxt()
{
ifstream Arhivs(”Arhiv.txt”,ios::in);
ofstream Fails(”Tekst.txt”,ios::out);
string  A,B,C;
int i,k,s,z,x,o,m;
stringstream S;
cout<<”\n\n\t\t\tTekstRazarhivirovan!\n”;
cout<<”\n\t\t\tSimboli- “;
//————————
if (!Arhivs)
{
cout << “NetArhiva!”;
system(”PAUSE>>null”);
exit(0);
}
//————————-
do
{
A=”";
Arhivs>>A;
if (A==”") break;
else
{
s=A.length();

for (i=0;i<s;i++)

{
if (A[i]==’*')
{
i++;//element
break;
}

else
{
B=B+A[i];//shotchik
}
}
//S.clear();
S<<B;
S>>m;
for (k=0;k<m;k++)
{
cout<<A[i];
Fails<<A[i];
}
}
B=”";
}
while(A!=”");
}
// Main()

int main(int argc, char *argv[])
{
cout<<”\n\t\t\t\t *** ARHIVATOR *** \n”;
cout<<”\t\t\t      ( Run Length Encoding )\n\n”;
int izv,x;

do
{

cout<<”\n\t 1: Arhivirovat v Consolnam rezhime\t”;
cout<<”\n\t 2: Arhivirovat v rezhime TxT Dokumenta\t”;
cout<<”\n\t 3: IRazarhivirovat Tekst iz TxT Dokumenta\t”;
cout<<”\n\t 0: Vijti\n\n: “;
cin>>izv;
switch(izv)
{
case 1: {
Console();
break;
}

case 2: {
Txt();
break;
}
case 3: {
UnrarTxt();
break;
}

case 0: {
cout<<”\nVihod…”;
break;
}
default: cout<<”\nNepravelnij_vibor!”;
}
}
while(izv!=0);

system(”PAUSE>>null”);
return 0;
}

Очеред, Стек и Дек…

Опубликовано DEPS | Без рубрики | Вторник 25 августа 2009 20:09

Pеализация  (Очереди, Стека и Декa)

Полностью разработанная программа на C++


#include <stdio.h>
#include <iostream>

using namespace std;

////Sozdanie strukturi dannix

struct Node
{
int data;
Node *link;
};

////// Funkcija Sozdanie Uzla()

Node *CreateNode ()
{
Node *NewNode;
NewNode = new Node;
cout<<”\nVedite_Chiclo_Katorae_dobavit:  “;
cin>>NewNode->data;
NewNode->link=NULL;
return NewNode;
}

//////Funkcija Poiska Uzla()

Node *Find (Node *head, int x)
{
Node *cur;
cur=head;
while (cur !=NULL && cur->data != x)
cur=cur->link;
return cur;
}

//////Funkcija Dobavlenie uzla v nachalo Spiska()

Node *AddFirst (Node *head, Node *NewNode)
{
NewNode->link=head;
head=NewNode;
return head;
}

//////Funkcija Razmer Deka()

void DekaIzmers (Node *head)
{
int z=0;
Node *cur;
cout<<”\nRazmer_Deka:\t”;
cur=head;
while (cur!=NULL)
{
z++;
cur=cur->link;
}
cout<<z<<”\n”;
}

//////Funkcija Dobavlenie uzla posle zadanova uzla()

void AddAfter (Node *head, Node *cur, Node *newNode)
{
newNode->link = cur->link;
cur->link = newNode;
}

//////Funkcija Dobavlenia uzla v konec spiska ()

Node *AddLast (Node *head, Node *newNode)
{
Node *cur;
cur=head;
if (!head)
{
head=AddFirst(head, newNode);
return head;
}
while (cur->link) cur=cur->link;
AddAfter(head, cur,newNode);
return head;
}

//////Funkcija Udalenia uzla()

Node *DeleteNode (Node *head, Node *oldNode)
{
Node *cur;
cur=head;
if (head==oldNode) head=oldNode->link;
else
{
while(cur->link!=oldNode)  cur=cur->link;
cur->link=oldNode->link;
}
delete oldNode;
return head;
}

Node *Find2 (Node *head)
{
Node *cur;
cur=head;
while (cur->link!=NULL) cur=cur->link;
return cur;
}

//////Funkcija Prasmotra spiska ()

int PrintList (Node *head)
{
Node *cur;
cout<<”Elementi spiska: “;
cur=head;
while (cur!=NULL)
{
cout<<cur->data<<” “;
cur=cur->link;
}
}

//// Main()
int main(int argc, char *argv[])
{
Node *newNode, *head=0, *cur, *sss=0, *find1, *oldNode;
int izv,x,y;

do
{
cout<<”\n1. Dobavit Element: s Levo\n”;
cout<<”2. Dobavit Element: s Pravo\n”;
cout<<”3. Udalit Element: s Levo\n”;
cout<<”4. Udalit Element: s Pravo\n”;
cout<<”5. Uznat Razmer\n”;
cout<<”6. Achistit Dek\n”;
cout<<”7. Pasmatret Spisok\n”;
cout<<”0. Exit\n”;
cin>>izv;
switch(izv)
{
case 1: {
newNode=CreateNode();
head=AddLast(head,newNode);
break;
}

case 2: {
newNode=CreateNode();
head=AddFirst(head,newNode);
break;
}

case 3: {
cur=head;
head=DeleteNode(head,cur);
break;
}

case 4: {
if (head==NULL) cout << “\nDek pust\n”;
if (head!=NULL)
{
oldNode=Find2(head);
if (oldNode==NULL) cout<<”\nNet chisla sprava!”;
else
{
cout<<”\n\nUdalit Chislo s prava!\n”;
head=DeleteNode(head,oldNode);
}
}
break;
}

case 5: {
DekaIzmers(head);
break;
}
case 7: {
int PrintList (Node *head);
break;
}

case 6: {
while(head!=NULL)
{
x=head->data;
oldNode=Find(head,x);
if (oldNode==NULL) cout<<”\nNet takova chisla!”;
else
{
head=DeleteNode(head,oldNode);
}
};
cout<<”\nDek achishen!\n”;
break;
}

case 0: {
cout<<”\nExit”;
break;
}
default: cout<<”\nNepravelnij vibor!\n”;
}
}
while(izv!=0);

system(”PAUSE>>null”);
return 0;
}

10 секретов счастья

Опубликовано DEPS | Без рубрики | Четверг 2 апреля 2009 14:42
1. секрет Истинного Счастья – Сила Отношения.

Мое счастье основано на моем отношении к жизни. Я настолько счастлив, насколько настроен  мой разум. В любой трудной или стрессовой ситуации следует задать себе три вопроса:
  1. Что в этой ситуации замечательно? Что в ней могло бы быть замечательным?
  2. Что еще не совершенно?
  3. Что я могу, чтобы исправить ситуацию и получить удовольствие от процесса?

Зерном истинного счастья является благодарность. Несчастным или счастливым меня делают только мои мысли, а не внешние обстоятельства. Управляя  своими мыслями, я управляю своим счастьем.

2. секрет Истинного Счастья – Сила Тела.
Движения влияют на чувства. Физические упражнения облегчают стресс и вызывают в теле химические реакции, благодаря которым мы чувствуем себя хорошо. Заниматься следует регулярно – по возможности, ежедневно, – как минимум, в течение 30 минут. Мои чувства воздействуют на осанку. Бодрая поза тела вызывает ощущения счастья. Чувство счастья можно сознательно вызвать в любое мгновение с помощью «якоря». Питание влияет на то, как мы себя чувствуем. Следует избегать депрессантов, таких, как кофе, чай, алкоголь, богатые сахаром продукты и искусственные добавки, и стараться употреблять побольше фруктов и овощей, грубых зерен и бобовых.

3. секрет Истинного Счастья – Сила Жизни в мгновении.
Счастье кроется не в годах, месяцах, неделях и даже не в днях, но его можно найти в каждом мгновении. Мы можем извлечь лучшее из своей жизни только в том случае, если будем извлекать лучшее из каждого мгновения. Воспоминания состоят из особых моментов – накапливайте как можно больше таких мгновений. Жизнь в текущем мгновении рассеивает сожаления, преодолевает беспокойство и снижает стресс. Помните, что каждый новый день является новым началом, новой жизнью.

4. секрет Истинного Счастья – Сила представлений о себе.
Говорят, что «человек является тем, что он о себе думает». Мы такие, какими себя считаем. Если я недоволен собой, то я недоволен и всей своей жизнью. Поэтому для того, чтобы обрести счастливую жизнь, следует научиться быть довольным самим собой. Каждый человек уникален. Он является победителем, поскольку шансы на рождение именно этого человека составляли один к трехстам тысячам миллиардов. Люди являются нашими зеркалами, но это кривые зеркала. Чтобы преодолеть комплексы и отрицательные убеждения о самом себе, чтобы создать положительный образ себя, необходимо:

  • Определить, как возникли негативные представления и справедливы ли они (если они имеют основания, следует приняться за изменение себя);
  • Ежедневно высказывать самому себе позитивные утверждения о том, каким человеком вы хотели бы стать;
  • Вести себя так, как будто вы такой, каким хотели бы быть;
  • Спрашивать самого себя, что вам нравится в самом себе и к чему в себе вы относитесь с уважением.

5. секрет Истинного Счастья – Сила цели.
Цели придают нашей жизни смысл и содержание. Если у нас есть цель, мы сосредотачиваемся на достижение удовольствия, а не на избавления от страданий. Цели становятся тем,  ради чего стоит подниматься   с постели по утрам. Цели делают трудные периоды более легкими, а хорошие времена – еще более приятными. Запишите все свои цели и перечитывайте их: Как только проснулись утром; Время от времени в течение дня; Перед самым отходом ко сну.

6. секрет Истинного Счастья – Сила смеха.
Чувство юмора облегчает стресс и вызывает ощущение счастья. Смех усиливает способность к сосредоточению и повышает умение решать задачи. В любых обстоятельствах наверняка можно найти смешные стороны, если только поискать их. Вместо вопроса: «Что плохого в этой ситуации?» спрашивайте себя: «Что в ней смешного?» или «Что в ней могло бы быть смешным?». Почаще обращайтесь к «двухшаговой формуле антистресса»: Не волнуйся о мелочах. Помни, что большая часть жизни состоит из мелочей!

7. секрет Истинного Счастья – Сила прощения.
Умение прощать является ключом, открывающим дверь Истинного Счастья. Невозможно быть счастливым, если в вас остались ненависть и обиды. Помните, что от ваших обид не страдает никто, кроме вас самих. Ошибки и неудачи представляют собой уроки жизни. Прощайте других. Прощайте самого себя.

8. секрет Истинного Счастья – Сила умения давать.
Счастье нельзя найти в обладании и приобретении чего-то для самого себя. Оно кроется в умении давать и помогать другим. Чем больше радости и счастья мы приносим другим, тем больше обретаем сами. Каждый день можно творить собственное счастье, отыскивая способы подарить его окружающим.

9. секрет Истинного Счастья – Сила взаимоотношений.
Качество жизни определяется качеством взаимоотношений с людьми.
Никто не живет на необитаемом острове. Каждый человек испытывает потребность в других. Близкие взаимоотношения делают хорошие времена еще более приятными, а трудные периоды – более легкими. Радость, которой делятся, – двойная радость; проблема, которой делятся, – половина проблемы. Относитесь к каждому человеку так, словно никогда его больше не увидите.

10. секрет Истинного Счастья – Сила веры.
Вера является фундаментом Истинного счастья. Без веры не может быть продолжительного счастья.
Вера вызывает доверие к людям, успокаивает разум т освобождает душу от сомнений, тревог, беспокойств и страха.