LINUX.ORG.RU

стек на основе списка

 


0

1

поможите пожалуйста. это жесть!!!!

скажите , можно ли это назвать стеком? если нет,то что нужно изменить?


#include <iostream>

class foo{
 public:
 int data;
 foo prior;// это будет адрес не следующего а предществующего 
 элемента;
};

int main(int argc, char *argv[]){
 foo *first=NULL;
 foo *top=NULL;
 foo *current;

 current=new foo;
 current->data=11;
 current->prior=NULL;
 top=current;//потому что еще нет других элементов. так что 
 текущий и будет и верхом  и первым
 first=current;
 

 //создаю следующий элемент стека;
 current =new foo;
 current->data=12;
 current ->prior=first;
 top=current;
  
 current =new foo;
 current ->data=13;
 current->prior=top;
 top=current;

// это все потом сделаю в цикле,если это не бред конечно же.

  как Вы думаете так можно будет реализовать стек? 


return 0;
}


Это дерьмо какое-то. Надо взять и с нуля переписать после прочтения каких-то книг.

Может быть «Роберт Седжвик: Фундаментальные алгоритмы C++»

fornlr ★★★★★ ()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от AUX

не. у нас преподаватель жесть. сказала сделать на основе списка. значит только так.

current =new foo;
current ->data=13;
current->prior=top;
top=current;

можно назвать стеком?

linuxpc ()
Ответ на: комментарий от fornlr

согласен. но если включить воображение, то можно подумать, что это будет работать как стек?

linuxpc ()
 
class foo{
 public:
 int data;
 foo prior;// это будет адрес не следующего а предществующего 
 элемента;
};

Зачем класс то, для этого есть структура.

AUX ★★★ ()
Ответ на: комментарий от linuxpc
#include <iostream>

class foo{
 public:
 int data;
 foo prior;// это будет адрес не следующего а предществующего 
 элемента;
};

int main(int argc, char *argv[]){
 foo *first=NULL;
 foo *top=NULL;
 foo *current;

 current=new foo;
 current->data=11;
 current->prior=NULL;
 top=current;//потому что еще нет других элементов. так что 
 текущий и будет и верхом  и первым
 first=current;
 

 //создаю следующий элемент стека;
 current =new foo;
 current->data=12;
 current ->prior=first;
 top=current;

 current =new foo;
 current ->data=13;
 current->prior=top;
 top=current;

// это все потом сделаю в цикле,если это не бред конечно же.

  как Вы думаете так можно будет реализовать стек? 


return 0;
}


linuxpc ()
Ответ на: комментарий от AUX

я напишу. речь о другом... сейчас я пытаюсь понять принцип работы и пути реализации. вот именно так, если бы это происходило шаг за шагом, то могло бы это называться стеком ?

linuxpc ()
Ответ на: комментарий от linuxpc

foo prior;// это будет адрес не следующего а предществующего

А кх это не адрес тогда?

так можно будет реализовать стек?

нет.

Deleted ()
Ответ на: комментарий от AUX

То есть, то, что prior у него - не указатель, а экземпляр класса - тебя, так же как и афтора, не смущает?

Deleted ()

это жесть!!!!

Вот тут полностью согласен.

Deleted ()
Ответ на: комментарий от Deleted

Я в код даже не вникал, может за него ещё зачёт сдать?

AUX ★★★ ()
Ответ на: комментарий от Deleted

тут я просто торопился. Вы правы, там *prior

исходя из того что там все же *prior, то тогда может ли это работать как стек?

linuxpc ()
Ответ на: комментарий от linuxpc

В следующей жизни сможет.

Загугли «односвязный список на c» - получишь миллион примеров того, что ты пытаешься сделать, включая ютуб-руководства для хипстеров.

Deleted ()
Ответ на: комментарий от Deleted

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

linuxpc ()
Ответ на: комментарий от linuxpc

Чувак. Ты пытаешься левой ногой через правое ухо сделать то, что описано в любом учебнике. С подробным описанием как и почему это работает. Но вместо того, чтобы открыть учебник, ты приходишь на ресурс, где закомплексованные красноглазики упражняются в остроумии, пытаясь поднять свою самооценку. Ты серъезно надеешься, что тут тебе объяснят понятнее?
Когда возникнет вопрос, которого в учебниках нет - приходи, а сечас иди курить туториалы, они для того и пишутся. Для начала выясни, что такое односвязный список и почему его можно считать стеком.

Deleted ()
Ответ на: комментарий от Deleted

не надо их обижать. они хорошие ребята. часто думал о том, кто по ту сторону экрана. кто те люди с кем я общаюсь и у кого прошу совета при изучении Линукс , да и всех сторон IT.

я как бы пытался заглянуть в свое будущее, кем я стану, если пойду по этому пути.

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

и я понял, что у меня много с ними общего. я также нищ и наг. но еще и глуп к сожалению. за это они меня не любят. но я люблю их. а это главное. так что не обижай их .

linuxpc ()
Ответ на: комментарий от linuxpc

я понял, что у меня много с ними общего.

ты чё?!

я также нищ и наг

да-а-а?

глуп к сожалению

кажись сростается...

они меня не любят

ты это, только без соплей...

я люблю их

*&^$%$

не обижай

аг-га щаз-з-з

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.