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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.01.2009, 21:57   #1
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
Печаль class queue

Знает кто нибудь как мне сделать правельно функцию вывода элементов?
Код:
#include <iostream.h>

class Queue{

  private:

    struct Node{
      int a;
      Node* next;
    };

  Node* first;
  Node* temp;

  

  public:

  Queue(){
  first=NULL;
  temp=NULL;
  }

    void add(int v){
	first=new Node;
	first->a=v;
	first->next=NULL;
	temp=first;
    }

    int get(){
	int temp;
	temp=first->a;
	first->next->a=temp;
	return temp;

        
    }

};

main(){

  Queue a;
  int v;

  for(int i=0;i<5;i++){
    cin>>v;
    a.add(v);
  }

  for(int j=0;j<5;j++){
    cout<<endl<<a.get();
  }

  return 0;
}
FreeR
Freer вне форума
Старый 14.01.2009, 01:36   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вывод всей очереди
Код:
void print()
{
	Node *t = first;
	while(t)
	{
		cout<<t->a<<endl;
		t=t->next;
	}
}
MaTBeu вне форума
Старый 14.01.2009, 08:32   #3
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
По умолчанию

неа.Так тоже не работает(
Код:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>

class Queue{

  private:

    struct Node{
      int a;
      Node* next;
    };

  Node* first;
  Node* temp;

  

  public:

  Queue(){
  first=NULL;
  temp=NULL;
  }

    void add(int v){
	first=new Node;
	first->a=v;
	first->next=NULL;
	temp=first;
    }

   /* int get(){
	int temp;
	temp=first->a;
	first->next->a=temp;
	return temp;

        
    }*/
    void print()
{
	Node *t = first;

	  while(t){
		cout<<t->a<<endl;
		t=t->next;
	  }
}


};

main(){

  Queue a;
  int v;

  for(int i=0;i<5;i++){
    cin>>v;
    a.add(v);
  }

  for(int j=0;j<5;j++){
    a.print();
  }

  return 0;
}
может ошибка в заполнении списка.*Don't know*((
FreeR

Последний раз редактировалось Freer; 14.01.2009 в 15:09.
Freer вне форума
Старый 14.01.2009, 19:32   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Да, ошибка в заполнении. Нужно вот так
Код:

void add(int value)
{
	Node *newNode = new Node;
	newNode->a = value;
	if(!first)
	{
		first = newNode;
		first->next=NULL;
	}
	else
	{
		while(first->next)
		{
			first = first->next;
		}
		first->next = newNode;
		newNode->next = NULL;
	}
}
Вроде так. Не проверял.
MaTBeu вне форума
Старый 14.01.2009, 21:26   #5
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
По умолчанию

мда) Лучше но всё равно не то)) Выводит последний и предпоследний эллементы по 5 раз в паре.

Жуткая вещь динамичаская память)
FreeR
Freer вне форума
Старый 14.01.2009, 21:37   #6
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
По умолчанию

Лан напишу тупо через поля.Хотя не рационально.
Код:
#include<iostream.h>
#include<conio.h>

class list
{
public:
  int a;
  list* next;
};

class spisok
{
private:
  list* temp;
  list* first;
  list* buf;
public:
  spisok();
  ~spisok();
  void vvod();
  void vivod();
  void sort();
};

spisok::spisok():temp(NULL),first(NULL),buf(NULL)
{
  temp=new list;
  first=temp;
  buf=temp;
}

spisok::~spisok()
{
  list* current=first;
  while(current!=NULL)
  {
    list* bufer=current;
    current=current->next;
    delete bufer;
  }
}

void spisok:: vvod()
{
  char ch;
  do
  {
    temp=buf;
    cout<<"wwedite element: ";
    cin>>temp->a;
    temp->next=NULL;
    cout<<"prodolgit wwod(y/n)?";
    cin>>ch;
    if(ch=='y')
    {
      buf=new list;
      temp->next=buf;
    }
  } while(ch=='y');
}

void spisok:: vivod()
{
  list* current=first;
  while(current!=NULL)
  {
    cout<<current->a<<" ";
    current=current->next;
  }
}

void spisok::sort()
{
  list* current=first;
  list* fros=first;
  for(current=first;current!=NULL;current=current->next)
  for(fros=first;fros!=NULL;fros=fros->next)
  if(current->a< fros->a)
  {
    int bufer=current->a;
    current->a=fros->a;
    fros->a=bufer;
  }
}

void main()
{
  clrscr();
  spisok a;
  a.vvod();
  cout<<"Spisok: ";
  a.vivod();
  cout<<endl<<"Otsortirovanniy spisok: ";
  a.sort();
  a.vivod();
  getch();
}
FreeR
Freer вне форума
Старый 16.01.2009, 00:05   #7
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
По умолчанию

Как бы наверно тему закрыть или удалить даже можно)
FreeR
Freer вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправить файл bp.class marmalenok Общие вопросы по Java, Java SE, Kotlin 2 01.08.2008 21:15
за что отвечает class в таблице? badfilin HTML и CSS 1 17.04.2008 22:06
class zzzzz Общие вопросы по Java, Java SE, Kotlin 2 03.04.2008 01:14
Error --- Class TDBGridEh not found shurik_7866 Компоненты Delphi 2 30.06.2007 11:09