IPB

Здравствуйте, гость ( Вход | Регистрация )

> Stack, Помогите со структурой
Tur
сообщение 11.10.2009, 17:06
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 11.10.2009
Город: Великие Луки
Вы: студент



(IMG:style_emoticons/default/dribble.gif) Помогите! Не могу найти ошибку
Что-то с добавлением элементов,т.к. при выводе выводится только последний(повторяется взависимости от кол-ва введенных эл-тов)
Вот код

#include <iostream>
#include <conio.h>
using namespace std;
struct stack
{
int *dat;
stack *prev;
}*top;
stack *push (stack *to,int *data)
{
stack *uk=new stack;
uk->prev = to;
uk->dat = data;
return uk;
};
stack *pop(stack *to)
{int *inf;

inf=to->dat;
cout<<*inf;
stack *uk=to;
to = to->prev;
delete uk;
return to;
};
void *print(stack *to)
{
int *d;
stack *uk=to;
while (uk!=NULL)
{
d=uk->dat;
uk=uk->prev;
cout<<*d<<endl;
}
return d;
};

int main ()
{
int k;
int a;
int q;
top=NULL;
t:cout<<"Vvedite: 1-add;2-del;3-print"<<endl;cin>>k;
switch(k)
{
case 1:{
cout<<"Vvedite element"<<endl;
cin>>a;
top=push(top,&a);};break;
case 2:if (top==NULL) {cout<<"Stek pust"<<endl;getch();break;}
else top=pop(top);break;
case 3:if (top==NULL) {cout<<"Stek pust"<<endl;getch();break;} else print(top);
break;
}
cout<<"Prodolgim"<<endl;cin>>q;
if (q==2) goto t;
return 0;
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов(1 - 3)
Vago
сообщение 12.10.2009, 6:52
Сообщение #2


Школьник
*

Группа: Продвинутые
Сообщений: 26
Регистрация: 12.9.2009
Город: dp



Вообще-то, в информационной части элемента стека (элемента списка, узла дерева,..) принято хранить данные. Сами данные, а не адрес буфера ввода.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Tur
сообщение 12.10.2009, 19:20
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 11.10.2009
Город: Великие Луки
Вы: студент



Спасибо за помощь! Попробую!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vago
сообщение 12.10.2009, 20:13
Сообщение #4


Школьник
*

Группа: Продвинутые
Сообщений: 26
Регистрация: 12.9.2009
Город: dp



Удачи! Надеюсь, поняли, что сейчас у Вас uk->dat всех элементов стека указывают в одно место. На a. Ввели новое a и сразу потеряли предыдущее, потому что на стек его-то на самом деле не помещали...

Ещё по мелочам - пользователю непонятно, что вводить, чтобы продолжить, а что - чтобы закончить. Ну и этот goto... "Поручик!.. При дамах!.. Как можно?!.." (IMG:style_emoticons/default/wink.gif) Есть же цикл do ... while ...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 25.5.2025, 19:39

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru