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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 14:33   #11
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение

Вводите число. Если оно равно первому элементу очереди, то просто удаляем первый элемент.
подскажите пожалуйста, где ошибка?

Код:
void Enquenue(Spis **begin)  
{
Spis *p,*tmp;
p=new Spis;  
p->number=0;
p->next=NULL;
*begin = p;
int size=0;

printf("Enter size:");
scanf("%d", &size);

for(int i=1; i<=size; i++) 
 {
  tmp = new Spis;
  p->next = tmp;
  tmp->next = NULL;
  printf("Enter element %d: ",i);
  scanf("%d",&tmp->number);
  p = p->next;
 }
}
void DeleteFirst(Spis **begin)
{
 Spis *p=*begin;
 if(p->next == p){
 *begin = (*begin)->next;
 delete p;
 p = NULL;
 }
}
bars1984 вне форума Ответить с цитированием
Старый 01.06.2009, 14:40   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от bars1984
подскажите пожалуйста, где ошибка?
Нет ошибок. Все компилируется, работает и что-то выводит.

Вы добавили в функцию единственную строчку, притом никак не относящуюся к тому, что вам нужно сделать.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 01.06.2009, 19:10   #13
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

Вводите число. Если оно равно первому элементу очереди, то просто удаляем первый элемент.

это правильный код?

Код:
void DeleteFirst(Spis **begin)
{
 Spis *p=*begin;
 while(p){
if(p==*begin)
{
 *begin = (*begin)->next;
 delete p;
}
p = NULL;
 }
}
bars1984 вне форума Ответить с цитированием
Старый 01.06.2009, 19:13   #14
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от bars1984
Вводите число.
И где вы его вводите?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 01.06.2009, 19:51   #15
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

Код:
void DeleteFirst(Spis **begin)
{
 Spis *p=*begin;
 printf("Enter element:");
 scanf("%d", &p);
 while(p){
if(p==*begin)
{
 *begin = (*begin)->next;
 delete p;
}
p = NULL;
 }
}
bars1984 вне форума Ответить с цитированием
Старый 01.06.2009, 20:01   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

p - указатель на Spis. А вы вводите как число. Хоть смотрите, что пишете.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередь Юлькин Общие вопросы C/C++ 4 30.05.2009 16:00
Задача на очередь Freer Общие вопросы C/C++ 26 06.11.2008 01:14
очередь odi_noki Общие вопросы Delphi 3 24.10.2008 12:09