Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

Код
#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 секунды
извините за название темы, ошибся чуток
реализация стека через односвязный список ) // поправил(модератор).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2008, 22:48     реализация стека через односвязный список
Посмотрите здесь:
Односвязный список, реализация C++
C++ Односвязный список (реализация без классов)
C++ Не работает реализация стека через массив
Очередь через односвязный список C++
Реализация дека через список C++
Реализация класса множество через двусвязный список. C++
Реализация стека C++
Реализация стека C++
C++ Реализация стека
C++ Реализация стека
Реализация стека C++
C++ Реализация стека

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
13.11.2008, 23:30     реализация стека через односвязный список #2
Код
if (st->next == NULL) {st = g;}
вот тебе и ошибка. Ты меняешь указатель st. Однако это - локальная переменная.
По окончании работы ф-ии она "пропадет". Таким образом добавление в стек первого
значения не реализовано.
snusnu
1 / 1 / 0
Регистрация: 13.11.2008
Сообщений: 4
13.11.2008, 23:57  [ТС]     реализация стека через односвязный список #3
не могли вы бы тогда привести правильный код? ссори в с++ ньюб...
Yandex
Объявления
13.11.2008, 23:57     реализация стека через односвязный список
Ответ Создать тему
Опции темы

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