Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
snusnu
1 / 1 / 0
Регистрация: 13.11.2008
Сообщений: 4
#1

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

13.11.2008, 22:48. Просмотров 2630. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация стека через односвязный список (C++):

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

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

Не работает реализация стека через массив - C++
Реализация стека через массив но почему то не работает. #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int const...

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

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

Реализация дека через список - C++
надо реализовать дек через список.очевидно что список должен быть двунаправленным а)как проверить является ли пустой голова/хвост? ...

2
XuTPbIu_MuHTAu
Эксперт С++
2227 / 742 / 10
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список - C++
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных односвязный список С++

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов - C++
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный список студентов. Помогите пожалуйста,...

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке - C++
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке.


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

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

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