Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужен ваш совет по реализации одной вещи / 3 сообщений из 3, страница 1 из 1
01.04.2014, 19:50
    #38602339
SRVdudko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен ваш совет по реализации одной вещи
Всем привет! Написал свою реализацию дека Double-enden-queue на основе двусвязного списка. Понимаю что мой велосипед баянище но начинать надо.
Идея состояла в том чтобы написать дек на двусвязном списке с фиктивной головой(она же хвост). При том что узел этот фиктивный только тогда когда дек пуст, а при добавлении этот уже созданный обьект повторно инициализируется. Таким образом при наличии обьектов в списке голова уже не фиктивная.
Можно как-нить проще реализовать его самому?
Код: java
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.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
package Dequeue;
import java.util.Iterator;
public class ListDequeue<DequeueType> implements Iterable<DequeueType>{
    private Node first,last;  //голова и конец
    private int N;              //размер очереди
    public ListDequeue() {
        this.first = new Node(); //создание фиктивного узла
        this.last=first;}
    @Override
    public Iterator<DequeueType> iterator() {
        return new ListDeqIterator();
            
    }
    private class ListDeqIterator implements Iterator<DequeueType>{
        private Node current=first;
        @Override
        public boolean hasNext() {return current!=null;}

        @Override
        public DequeueType next() {
            DequeueType val=current.val;
            current=current.next;
            return val;
           }

        @Override
        public void remove() {
            throw new UnsupportedOperationException("Not supported yet."); 
        }
    }
    private class Node{
        DequeueType val;
        Node next,prev;        
    }
        
    public boolean isEmpty(){return first.prev==null &&first.next==null;}
    public int size(){return N;}
    public void pushLeft(DequeueType val){
        if(first.val==null){first.val=val;N++;return;} 
        Node oldfirst=first;
        first = new Node();
        first.val=val;
        first.next=oldfirst;
        first.prev=null;
        oldfirst.prev=first;
        N++;
    }
    public void pushRight(DequeueType val){
        if(last.val==null){last.val=val;N++;return;} 
        Node newlast=new Node();
        newlast.val=val;
        last.next=newlast;
        newlast.prev=last;
        last=newlast;
        N++;
    }
    public DequeueType popLeft(){   
    DequeueType val = first.val;
    if(isEmpty()){
        first=new Node();
        last=first;
        N--;
        return val;
    }
    first=first.next;
    first.prev=null;
    N--;
    return val;}
    public DequeueType popRight(){
    DequeueType val=last.val;
    if(isEmpty()){
        first=new Node();
        last=first;
        N--;
        return val;
    }
    last=last.prev;
    last.next=null;
    N--;
    return val;
    
    }
    
public static void main(String[] args) {
    ListDequeue<Character> s = new ListDequeue<>();
    s.pushLeft('A');




    }

}
...
Рейтинг: 0 / 0
01.04.2014, 19:57
    #38602346
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен ваш совет по реализации одной вещи
Не ну жон
...
Рейтинг: 0 / 0
01.04.2014, 20:11
    #38602355
SRVdudko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен ваш совет по реализации одной вещи
Паша01Не ну жон
А вот лучше бы подсказали
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужен ваш совет по реализации одной вещи / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]