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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2011, 16:03   #1
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость C++ Списки

Помогите пожалуйста исправить ошибки:

Две функции: создание массива и вывод на экран
Но они работают не правильно, подскажите пожалуйста где ошибки.


Код:
//Создание динамического массива размером "n" и заполнение его случайными числами
void CStack::adding( int n ) 
{
	//Создание первого элемента//
	link* newlink=new link;

	newlink->next=NULL;
	newlink->data=rand();		//Заполняем случайным числом
	newlink->prev=NULL;
	first=newlink;				// Указывает на первый элемент				
	buffer=newlink;				// Вспомогательная переменная
	last=newlink;				// Указывает на последний элемент

	//Создание последущих элементов
	for( int i=1; i<n; i++ ){
		link* newlink=new link;
		
		buffer->next=newlink;
		newlink->prev=buffer;
		newlink->data=rand();
		newlink->next=NULL;
		buffer=newlink;
		last=newlink; 
	}

}

//////////////////////////////////////////////////////////////////////

//Вывод динамического массива на экран
void CStack::showing()
{
	link* current=first;

	cout << "Massiv: ";
	current=first;
	while( current != NULL ){
		cout << current->data << " ";
		current=current->next;
	}
}
sir.andrey вне форума Ответить с цитированием
Старый 10.07.2011, 16:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А почему ты решил что работа не верна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.07.2011, 16:13   #3
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость

Цитата:
Сообщение от Stilet Посмотреть сообщение
А почему ты решил что работа не верна?
Потому что, это я баран в main забыл добавить ф-цию вывода

И заодно еще один вопросик: rand всегда выводит числа с возрастанием?
И такие здоровые (четырехзначные).
sir.andrey вне форума Ответить с цитированием
Старый 10.07.2011, 16:25   #4
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
По умолчанию

И еще вопрос, можно ли то, что я сделал, сделать менее громоздко в плане кода?
Если можно, то как?
sir.andrey вне форума Ответить с цитированием
Старый 10.07.2011, 17:20   #5
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость

У нас завелся знаток-интеллектуал!
sir.andrey вне форума Ответить с цитированием
Старый 10.07.2011, 18:28   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сделать менее громоздко в плане кода?
А по -моему это не такой плохой код... Я видал и подлинее
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.07.2011, 10:48   #7
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость

Посмотрите пожалуйста, почему не работает разрушитель динамического массива?
first & last - первый и последний эл-т.
Начинаем удалять с последнего.

Код:
void CStack::destroy()
{
	for( int i=0; i<n; i++ ){
		if( last==first ){  //Удаление первого эл-та
			delete last;
			last=NULL;
			first=NULL;
			buffer=NULL;
		}
		else{
			last->prev=buffer;
			buffer->next=NULL;
			last->prev=NULL;
			delete last;
			last=buffer;
		}
	}
}

Последний раз редактировалось sir.andrey; 12.07.2011 в 10:56.
sir.andrey вне форума Ответить с цитированием
Старый 12.07.2011, 11:38   #8
Раввин
Новичок
Джуниор
 
Регистрация: 12.07.2011
Сообщений: 12
По умолчанию

Таки это у тебя массив, связанный список или стек? Вижу в нём признаки всех троих.
Раввин вне форума Ответить с цитированием
Старый 12.07.2011, 11:45   #9
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
По умолчанию

Цитата:
Сообщение от Раввин Посмотреть сообщение
Таки это у тебя массив, связанный список или стек? Вижу в нём признаки всех троих.
Скорее это двусвязный список
sir.andrey вне форума Ответить с цитированием
Старый 12.07.2011, 12:59   #10
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость

Помогите пожалуйста подправить ф-цию для деструктора!!!
По моему все сделано верно, но блин не работает!
sir.andrey вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
списки Inna_L HTML и CSS 2 11.12.2010 17:34
Списки Хорнет Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2010 09:55
списки sergeykl Паскаль, Turbo Pascal, PascalABC.NET 8 04.08.2009 23:05