Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
snusnu
1 / 1 / 0
Регистрация: 13.11.2008
Сообщений: 4
1

Реализация стека через односвязный список

13.11.2008, 22:48. Просмотров 2883. Ответов 2
Метки нет (Все метки)

вот что я накалякал...
должно по идее выводить первый элемент стека (ну лн в принципе пока тут и единственный), но вылетает либо 0 либо адрес памяти ли ещё что то)) не могу понять в чем дело..помогите, пожалуйста!
п.с. компилятор BC31

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
 
//stek
struct stek {int value; struct stek *next;};
 
//pushing
stek *pushing(stek *st, int val){
 stek *f, *g = new stek;
  g->value = val;
  g->next = NULL;
  if (st->next == NULL) {st = g;}
  else{
   for (f = st; f->next != 0; f = f->next){
    f->next = g;
    }
   }
 return st;
  }
 
//popping
stek *popping(stek *st){
 stek *s, *q = new stek;
 int i;
 i = 0;
 if (st == NULL) {cout<<"\n Error: stek pust";}
 else {
  for (q = st; i != 1; q = q->next){
   if (q->next == NULL) {
    i = 1;
    s = q;
    delete st;
    }
   else {break;}
  }
 }
 return s;
}
 
////////////////
//prosmotr spiska
void scan (stek *st) // zagolovok spiska
{
    stek *p = new stek;
for (p = st; p != NULL; p = p->next)
     printf ("%d ", *p);
        printf ("\n");
}
////////////////
 
void main(){
 int n;
 stek *ST = new stek;
 cout<<"\nEnter pls. : ";
 cin>>n;
 pushing(ST, n);
 cout<<"\n N ="<<n;
 scan(ST);
 
}
Добавлено через 4 минуты 54 секунды
извините за название темы, ошибся чуток
реализация стека через односвязный список ) // поправил(модератор).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2008, 22:48
Ответы с готовыми решениями:

Ошибка в реализации стека через односвязный список
Здравствуйте, при реализации стека через односвязный список столкнулся с трудностью, если не...

Односвязный список, реализация
Добрый вечер! :) Пытаюсь разобраться как работают списки. Делаю последовательный односвязный...

Односвязный список (реализация без классов)
Задача проста: создать список из слов, вводимых с клавиатуры, и вывести его на консоль. Всё вводит...

Не работает реализация стека через массив
Реализация стека через массив но почему то не работает. #include &lt;iostream&gt; #include &lt;conio.h&gt;...

Очередь через односвязный список
Здравствуйте :) Собственно сам вопрос: почему выводи &quot;1 0&quot;, а не &quot;0 1&quot;? #include &lt;iostream&gt;...

2
XuTPbIu_MuHTAu
Эксперт С++
2237 / 752 / 25
Регистрация: 27.05.2008
Сообщений: 1,498
13.11.2008, 23:30 2
Код
if (st->next == NULL) {st = g;}
вот тебе и ошибка. Ты меняешь указатель st. Однако это - локальная переменная.
По окончании работы ф-ии она "пропадет". Таким образом добавление в стек первого
значения не реализовано.
0
snusnu
1 / 1 / 0
Регистрация: 13.11.2008
Сообщений: 4
13.11.2008, 23:57  [ТС] 3
не могли вы бы тогда привести правильный код? ссори в с++ ньюб...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2008, 23:57

Циклический односвязный список с зацикливанием через указатель
Циклический односвязный список с зацикливанием «через указатель». Дополнительные операции: a)...

Реализация дека через список
надо реализовать дек через список.очевидно что список должен быть двунаправленным а)как...

Реализация класса множество через двусвязный список.
дали задание реализовать класс множество через двусвязный список. Сам класс список мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru