Кері кірістіру үшін Java деректер құрылымы

Java ішіне кері кірістіруді қолдайтын деректер қоры бар ма? Деректер құрылымына құндылық қосқым келеді. Мен қанша алдын ала білмеймін. Мәндерді келесі жолға енгізу керек:

datastructure.insert(1); //datastructure is: {1}                 
datastructure.insert(4); //datastructure is: {4,1}       
datastructure.insert(9); //datastructure is: {9,4,1}

Соңғы енгізілген мән әрқашан бірінші болуы керек. Қандай деректер құрылымы жақсы?

1
+1 Не себепті Stack дұрыс жауап деп санайды. Сұрақ қоюға тұрарлық екенін көрсетеді, себебі Stack жақсы идея емес. Менің жауабымды қараңыз.
қосылды автор Peter Lawrey, көзі
сізде 2 генетрлік жинақ және FIFO тұжырымдамаларын басу және поп-әдістермен қолданыңыз
қосылды автор abhi, көзі
Ең соңында кірістіруге мүмкіндік беретін Deque әрекетін орындап көріңіз, docs.oracle.com/javase/6/docs/api/java/util/…
қосылды автор madhav-turangi, көзі

6 жауаптар

Ең жақсы тәсіл - Deque пайдалану Java-нің шынымен ескі нұсқасы болмаса, Stack-ты пайдалануға болмайды. Стек btw қажет керісінше тәртібі болады.

Stack stack = new Stack();
stack.push(1);
stack.push(4);
stack.push(9);
System.out.println("stack: " + stack);
Deque deque = new ArrayDeque<>();
deque.addFirst(1);
deque.addFirst(4);
deque.addFirst(9);
System.out.println("deque: " + deque);

басып шығарады

stack: [1, 4, 9]
deque: [9, 4, 1]
5
қосылды
Міне, бұл мен іздеймін. Рахмет.
қосылды автор Irgendw Pointer, көзі

This is called a stack. See Stack, methods are push() and pop()

5
қосылды
стак [1, 4, 9] жауапты көреді. Бұл бәрібір мұрагерлік сынып.
қосылды автор Peter Lawrey, көзі
Екі есепте де шын. Сонымен қатар, иерархия тәртібіне мән бермедім.
қосылды автор Delyan, көзі

Stack орнына java.util.ArrayDeque пайдалануға болады. Oracle Java API ішінен:

LIFO стекінің әрекеттерінің толық және дәйекті жиынтығы Stack сыныпына артықшылықта қолданылуы тиіс Deque интерфейсі және оны іске асыру арқылы қамтамасыз етіледі. Мысалы:

Deque stack = new ArrayDeque();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);

Бұл {4, 3, 2, 1} сияқты мәндерді аласыз.

Класс java.util.ArrayDeque LIFO деректер құрылымының барлық әрекеттерін (ex push() және pop ()) қамтамасыз етеді

1
қосылды

you could use a LinkedList and add new Elements using addFirst() or a Stack

0
қосылды

Ия, сіз жасай алатын ең қарапайым нәрсе - бұл Stack бағдарламасын іске қосу, барлық элементтеріңізді бір-бірлеп басып, содан кейін оларды шығарыңыз. «

0
қосылды

Біз StackOverflow-те, сіз Stack-ты қолданғыңыз келуі мүмкін;) http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html

0
қосылды