Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 17:17   #1
supra89kren
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 19
Плохо Лабы по Структурам данных

До завтра 27,03,2010 надо помочь сделать одну лабараторную работу по Архитектурам и структурам данных....
тема как по мне оч печальная но кто сможжет мне помочь буду очень благодарен
Вот задания правда на украинском языке, если кто не поймёт смогу перевести.

Хід роботы
Завдання 1
1. Реалізувати АТД Черга на основі циклічного масиву.
2. Реалізувати додатково метод пошуку та видалення мінімального елементу з черги.
3. Оцінити складність методу пошуку та видалення мінімального елементу.
Завдання 2.
4. Реалізувати АТД Двозв’язаний список на основи пари стеків. АТД Стек реалізувати довільним чином.
5. Реалізувати додатково метод пошуку мінімального елементу списку.
6. Оцінити складність методу пошуку елементу
Завдання 3.
7. Реалізувати АТД Двозв’язаний список на основи вказівців Next, Pred.
8. Реалізувати додатково метод пошуку мінімального елементу списку.
9. Оцінити складність методу пошуку мінімального елементу
я не фсехда пишу прафельно, но са смыслам.=)
supra89kren вне форума Ответить с цитированием
Старый 25.03.2010, 17:59   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

http://www.programmersforum.ru/forumdisplay.php?f=29 тебе поможет...
NiCola999 вне форума Ответить с цитированием
Старый 25.03.2010, 18:04   #3
supra89kren
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 19
По умолчанию

а тут что бесплатно помочь советом не могут?
я не фсехда пишу прафельно, но са смыслам.=)
supra89kren вне форума Ответить с цитированием
Старый 25.03.2010, 18:21   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Помочь советом, пояснением непонятного или чего ещё могут
Но делать за Вас Ваше задание едва ли кто-то будет )
Выкладывайте свои попытки сделать задание, говорите, что конкретно не получается, или где что-то не так работает как надо, а так..)
netrino вне форума Ответить с цитированием
Старый 25.03.2010, 18:22   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Бесплатно помогаю советом: пишите код и если что не получается - выкладывайте его сюда с подробным описанием проблемы.
http://programmersforum.ru/showthread.php?t=34061
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.03.2010, 19:59   #6
supra89kren
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 19
Смущение

получаеться есть такая проблемка =)))
я на втором курсе. лабараторки дал мне знакомый с 3-его курса типо говорит что они подходят , пол моей группы их сдало а вот мой препод говорит что они не подходят или говорит если подходят то чем... помогите если знаете=)
Код:
// Queue.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>
 using namespace std;
///////////////////////////////////ATD
void Add();
void Output();
void Delete_El();
void Delete();
 int First_El();
bool Exist();
void Find_Min();
void Delete_Min();

const int N=50;
int index_begin=0;
int index_end=0;
int ke=0;
int a[N];

void main()
{ 
	int number;
	do
	{
		cout<<endl;
		cout<<"******************"<<endl;
		cout<<"*      Queue     *"<<endl;
		cout<<"******************"<<endl;
		cout<<"  1-Add Element\n";
		cout<<"  2-Output\n";
		cout<<"  3-Delete Element\n";
		cout<<"  4-Delete Queue\n";
		cout<<"  5-First Element\n";
		cout<<"  6-Queue Existent\n";
		cout<<"  7-Find Min Element\n";
		cout<<"  8-Delete Min Element\n";
		cout<<"  0-Exit\n";
		cout<<endl;
		cin>>number;

		switch(number)
		{
		case 1:
			Add();
			break;
		case 2:
			Output();
			break;
		case 3:
			Delete_El();
			break;
		case 4:
			Delete();
			break;
		case 5:
			cout<<endl;
			cout<< First_El();
			break;
		case 6:
			if(Exist())
				cout<<"Yes\n";
			else cout<<"No\n";
			break;
		case 7:
			Find_Min();
			break;
		case 8:
			Delete_Min();
			break;
		}
	} 
	while(number!=0);
	
}

void Add()
{
	cout<<endl;
	cout<<"Enter Data: ";
	int data;
	cin>>data;
	if(ke==0)
	{
		a[0]=data;;
		index_end++;
		ke++;
	}
	else
	if(ke<N)
	{
		a[index_end]=data;
		index_end++;
		if(index_end==N)index_end=0;
		ke++;
	}
	else 
		cout<<endl;
		cout<<"Stack not Existent\n";
}

void Output()
{
	if(ke==0)
		
		cout<<"Not Existent"<<endl;
	else
	{
		int i=index_begin;
		while(i!=index_end)
		{
			cout<<a[i]<<" <- ";
			i++;
			if(i==N)i=0;
		}
	}
}

void Delete_El()
{
	if(ke==0)
	{
		cout<<endl;
		cout<<"is empty";
		return;
	}
	a[index_begin]=0;
	index_begin++;
	if(index_begin==N)index_begin=0;
	ke--;
}

void Delete()
{
	index_begin=0;
	index_end=0;
	ke=0;
}

int First_El()
{
	return(a[index_begin]);
}

bool Exist()
{
	if(ke==0)return false;
		else return true;
}

void Find_Min()
{
	int i=index_begin;
	int e=a[i];
	int ie=i;
	int poz=0;
	int por=0;
	int pry=0;
	while(i!=index_end-1)
	{
		i++;
		pry++;
		por++;
		if(i==N){i=0;pry++;}
		por++;
		if(e>a[i])
		{
			pry+=2;
			e=a[i];
			ie=i;
		}
	}
    cout<<endl;
	cout<<"Min Element: "<<e<<" Position: "<<ie-index_begin+1<<endl;
   cout<<endl;
	cout<<"KILKIST PRYSVOEN="<<pry<<endl
		<<"KILKIST PORIVNAN="<<por<<endl;
}
void Delete_Min()
{
	int i=index_begin;
	int e=a[i];
	int ie=i;
	while(i!=index_end-1)
	{
		i++;
		if(i==N)i=0;
		if(e>a[i])
		{
			e=a[i];
			ie=i;
		}
	}
	for(i=index_begin;i<ie-index_begin+1;i++)
		Delete_El();
}
это первое задание
вот второе
Код:
// Stack.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "list-two_stack.h"
#include <conio.h>
#include <stdlib.h>


int _tmain(int argc, _TCHAR* argv[])
{
	CBiListSt blist;
	ITEM elem;
	while(1)
	{	
		system("cls");
		cout<<endl;
		cout<<"******************"<<endl;
		cout<<"* List-two_stack *"<<endl;
		cout<<"******************"<<endl;
		cout<<"  1 - Add item\n  2 - Move Next\n  3 - Move Back\n  4 - Get Min item\n  5 - Print All\nESC - Exit\n"<<endl;
		char action = getche();
		system("cls");
		switch(action)
		{
		case '1':
			{
				int val;
				cout<<"Enter value: ";
				cin>>val;
				blist.AddItem(new ITEM(val));
			}break;
		case '2':
			{
				if (blist.goNext()!=ST_NONEXT)
				{
					blist.printCurr();
					cout<<"\n"<<"OK..."<<endl;
				}
				else
				{
					cout<<"It's last item\n";
				}
				getche();
			}break;
		case '3':
			{
				if (blist.goPrev()!=ST_NOBACK)
				{
					blist.printCurr();
					cout<<"\n"<<"OK..."<<endl;
				}
				else
				{
					cout<<"It's first item\n";
				}
				getche();
			}break;
		case '4':
			{
				cout<<"Getting min item\n";
				if (blist.getMin(elem)==ST_OK)
				{
					elem.print();
					cout<<"\n"<<"OK..."<<endl;
				}
				else
				{
					cout<<"\n"<<"Failed!.."<<endl;
				}
				getche();
			}break;
		case '5':
			{
				cout<<"Printing All:\n";
				if(blist.printList()==ST_OK)
				{
					cout<<"\n"<<"OK..."<<endl;
				}
				else
				{
					cout<<"\n"<<"List Empty..."<<endl;
				}
				getche();
			}break;
		case 27:
			{
				return 0;
			}break;
		}
	}
	
}
я не фсехда пишу прафельно, но са смыслам.=)
supra89kren вне форума Ответить с цитированием
Старый 25.03.2010, 20:02   #7
supra89kren
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 19
Смущение

Код:
#include "stdafx.h"
#include <iostream>

using namespace std;
struct spysok
{
	int data;
	spysok *l;
	spysok *r;
};

void insert(int x, int p);
int locate(int x);
int retrieve(int p);
void delet(int p);
int next(int p);
int previous(int p);
void makenull();
int first();
void printlist();
int find_min();

int kilkist_elementiv=0;
spysok *position;
spysok *tmp;
spysok *start;

void main()
{
	int vybir;
	int p=0;
	int x=0;
	start=new(spysok);
	start->l=NULL;
	start->r=NULL;
	
	do
	{
	cout<<endl;
	cout<<"****************"<<endl;
	cout<<"*      List    *"<<endl;
	cout<<"****************"<<endl;
	cout<<"  1-Insert\n"
	      <<"  2-Locate\n"
	      <<"  3-Retrieve\n"
	      <<"  4-Delet\n"
	      <<"  5-Next\n"
	     <<"  6-Previous\n"
	     <<"  7-Makenull\n"
	     <<"  8-First"<<endl
	     <<"  9-Printlist"<<endl
	     <<"  10-Find_Min"<<endl
	     <<"  0-Exit\n";
		cout<<endl;
		cin>>vybir;

		switch(vybir)
		{
		case 1:
			cout<<"///Enter Position: ";
			cin>>p;
			cout<<"///Enter Data: ";
			cin>>x;
			insert(x,p);
			break;
		case 2:
			cout<<"///Enter Data: ";
			cin>>x;
			{int i2=locate(x);
			if(i2==0)cout<<"///Element Not Existent";
			else cout<<" Data "<<x<<" Position "<<i2;}

			break;
		case 3:
			cout<<"///Enter Position: ";
			cin>>p;
			cout<<"="<<retrieve(p);

			break;
		case 4:
			cout<<"///Enter Position: ";
			cin>>p;
			delet(p);
	
			break;
		case 5:
			cout<<"///Enter Position: ";
			cin>>p;
			cout<<"next("<<p<<")="<<next(p);
	
			break;
		case 6:
			cout<<"///Enter Position: ";
			cin>>p;
			cout<<"previous("<<p<<")="<<previous(p);
		case 7:
			makenull();
			cout<<"///List MakeNULL";
			break;
		case 8:
			cout<<first();
			break;

		case 9:
			printlist();
		
			break;
		case 10:
			cout<<"///Min Element="<<find_min()<<endl;
			break;
		}
	} while(vybir!=0);
}

void insert(int x, int p)
{
	position=start;

	if((kilkist_elementiv==0)&&(p==1))
	{
		position->data=x;
		kilkist_elementiv++;
		return;
	}

	kilkist_elementiv++;

	if(p==1)
	{
		tmp=new(spysok);
		tmp->l=NULL;
		tmp->r=start;
		tmp->data=x;
		start->l=tmp;
		start=tmp;
		return;

	}

	for(int i=1;i<p-1;i++)position=position->r;

	tmp=new(spysok);

	tmp->data=x;

	if(position->r==NULL)
	{
		tmp->l=position;
		tmp->r=NULL;
		position->r=tmp;
	}
	else
	{
		tmp->l=position;
		tmp->r=position->r;
		position->r->l=tmp;
		position->r=tmp;
	}
	
}

void printlist()
{
	position=start;
	while(position->r!=NULL)
	{
		cout<<"<"<<position->data<<">";
		position=position->r;
	}
		cout<<"<"<<position->data<<">";
}

int locate(int x)
{
	position=start;
	int i=1;
	if(position->data==x)return(1);
	else
		while(position->r!=NULL)
		{
			position=position->r;
			i++;
			if(position->data==x)return(i);
		}
	position=position->r;
	i++;
	if(position->data==x)return(i);
	return(0);
}

int retrieve(int p)
{
	if(kilkist_elementiv<p)
	{
		cout<<"///Amount Element not Correct: ";
		return 0;
	}
	position=start;
	if(p==1)return(start->data);
	else
	for(int i=1;i<p;i++)position=position->r;
	return(position->data);
}

void delet(int p)
{
	if(kilkist_elementiv==1)
	{
		start->data=0;
		kilkist_elementiv--;
		return;
	}
	if(p==1)
	{
		tmp=start;
		start=tmp->r;
		start->l=NULL;
		delete(tmp);
		kilkist_elementiv--;
	}
	else
	{
		position=start;
		for(int i=1;i<p;i++)position=position->r;
		if(position->r==NULL)
		{
			position->l->r=NULL;
			delete(position);
		}
		else
		{
			position->l->r=position->r;
			position->r->l=position->l;
			delete(position);
		}
	}
	
}

int next(int p)
{
	position=start;
	if(p==1)return(position->data);
	for(int i=1;i<p;i++)position=position->r;
	if(position->r==NULL)
	{
		cout<<"NULL!";
		return(0);
	}
	else return(position->r->data);

}

int previous(int p)
{
	if(p==1)
	{
		cout<<"NULL!";
		return(0);
	}
	else
	{
		position=start;
		for(int i=1;i<p;i++)position=position->r;
		return(position->l->data);
	}
}
я не фсехда пишу прафельно, но са смыслам.=)
supra89kren вне форума Ответить с цитированием
Старый 25.03.2010, 20:03   #8
supra89kren
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 19
Смущение

Код:
void makenull()
{
	position=start;
	start->r=NULL;
	start->data=0;
	kilkist_elementiv=0;
	position=position->r;
	while(position->r!=NULL)
	{
		position=position->r;
		delete(position->l);	
	}
	delete(position);
}

int first()
{
	if(kilkist_elementiv==0)
	{
		cout<<"///List MakeNULL\n";
		return(0);
	}
	else
	return(start->data);
}

int find_min()
{
	int pry=0;
	int por=0;
	position=start;
	int min=position->data;
	position=position->r;
	pry+=5;;
	while(position->r!=NULL)
	{
		if((position->data)<min)
		{
			min=position->data;
			pry++;
		}
		position=position->r;
		por++;
		pry++;
	}
	if((position->data)<min)
	{
		min=position->data;
		pry++;
	}
	por++;
	cout<<"/////// If: "<<por<<endl;
	cout<<"/////// := : "<<pry<<endl;
	cout<<"/////// Amount Elements: "<<kilkist_elementiv<<endl;
	return(min);



}
вот пожалуй и всё, понимаю что мало кто захочет это всё смотреть но вдруг найдёться хороший человек=)
я не фсехда пишу прафельно, но са смыслам.=)
supra89kren вне форума Ответить с цитированием
Старый 25.03.2010, 20:14   #9
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

хехе... тыб еще ядро линукс выложил, к сожалению времени и желания нет смотреть всё это)
NiCola999 вне форума Ответить с цитированием
Старый 25.03.2010, 20:16   #10
supra89kren
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
хехе... тыб еще ядро линукс выложил, к сожалению времени и желания нет смотреть всё это)
я как бы не прошу всё просмотреть . смысл этих робот очень прост, просто я недавно пытаюсь програмить, и не совсем понял смысл задания.....
я не фсехда пишу прафельно, но са смыслам.=)
supra89kren вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по динамическим структурам Sergy Win Api 2 10.05.2011 13:37
обращение к вложенным структурам серг Общие вопросы C/C++ 2 21.12.2009 17:20
Помогите разобраться с лабораторной по динамическим структурам данных TiK_Tak Помощь студентам 8 25.11.2009 13:32
Совет с литературой к Структурам данных! phpcreator Помощь студентам 1 19.09.2009 22:30