[Ответить в тред] Ответить в тред

Тред закрыт.


03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 7 | 1 | 5
Назад Вниз Каталог Обновить

Стеки Аноним 26/05/16 Чтв 02:25:20  754234   Обсуждение закрыто  
14642187201170.png (551Кб, 1450x1080)
Привет, пр. Помоги разобраться со стеками.
-Абстрактный тип данных стек: реализация на основе массива.
-Абстрактный тип данных стек: реализация в виде связанного списка.
-Абстрактный тип данных стек: реализация на основе связанного списка.

1.Как я понимаю, стек на основе массива - это создать массив, создать методы Push, Pop, и Show. Данные помещаются в одном порядке, извлекаются в другом порядке, тут все просто.
2.Стек в виде связанного списка - создать те же методы, только вместо массива у меня будет (вот хз, что, мб, структура?), хранящая ссылку на следующий элемент. Объясни словами, двач, как можно организовать ссылку на следующий элемент?
3.Что вообще значит стек НА основе связного списка? Типа индексы в нем хранить или че? сложнааа
Аноним 26/05/16 Чтв 12:01:47  754398
>>754234 (OP)
>Стек в виде связанного списка
Ну, ты же знаешь, как реализовать связанный список? То есть, у нас есть звенья, в которых хранится сам элемент и указатель на следующе звено, то есть(я ньюфаг в этом разделе, не ебу, как размечается код):
class Link<T>{
public var value: T;
public var next: Link<T>;

public function new(value: T){
this.value=value;
this.next=null;
}
}

Если реализовывать стек в виде списка, то я бы сделал так: добавлял бы новые елементы не к концу, а к самому началу списка, то есть перед его головой. Когда же мы снимаем элемент со стека, то убираем голову, и головой становится следующий элемент:

class Stack<T>{
private var head: Link<T>;

public function new(){
head=null;
}

public function push(value: T){
if(head==null){
head=new Link<T>(value);
}else{
var newLink: Link<T>=new Link<T>(value);
newLink.next=head;
head=newLink;
}
}

public function pop(): T{
if(head!=null){
var result: T=head.value;
head=head.next;
return result;
}else{
throw "Bla bla bla";
}
}
}

Как-то так.
Аноним 26/05/16 Чтв 12:32:07  754421
>>754234 (OP)

Мамка твоя была связана, когда тебя зачала.
Аноним 26/05/16 Чтв 17:07:53  754649
ролл
Аноним 26/05/16 Чтв 21:19:19  754873
>>754398
Спасибо, анон
Аноним 26/05/16 Чтв 21:19:38  754875
>>754421
Слава, это ты?
Аноним 26/05/16 Чтв 21:21:56  754878
>>754875
Нет, я Ерохин.
Аноним 27/05/16 Птн 18:16:56  755403
roll

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 7 | 1 | 5
Назад Вверх Каталог Обновить

Топ тредов